C++ C++;:如何通过公共方法调用私有方法?

C++ C++;:如何通过公共方法调用私有方法?,c++,function,class,C++,Function,Class,对于我们的项目,我们得到了一个不应该以任何方式编辑的代码片段。我们只允许在上述代码段中为原型编写函数定义 我的问题是,当代码以这种方式编写时,我应该如何调用私有函数: class ClassOne { private: void methodOne(); public: void methodTwo(); }; 因此,我应该能够通过Method2访问methodOne,但无需在methodOne旁边编写{methodTwo();}。请帮帮我?类定义声明了成员函

对于我们的项目,我们得到了一个不应该以任何方式编辑的代码片段。我们只允许在上述代码段中为原型编写函数定义

我的问题是,当代码以这种方式编写时,我应该如何调用私有函数:

class ClassOne {
    private:
    void methodOne();

    public:
    void methodTwo();
};

因此,我应该能够通过Method2访问methodOne,但无需在methodOne旁边编写
{methodTwo();}
。请帮帮我?

类定义声明了成员函数
methodOne
methodTwo
,但没有定义它们。你需要在课堂外定义它们

// I assume the return type is void since you omitted it, but
// keep in mind the compiler will not allow you to omit it!
void ClassOne::methodOne() {
    // ...
}
void ClassOne::methodTwo() {
    // ...
    methodOne(); // OK since access is from a member of ClassOne
    // ...
}

类定义声明了成员函数
methodOne
methodTwo
,但没有定义它们。你需要在课堂外定义它们

// I assume the return type is void since you omitted it, but
// keep in mind the compiler will not allow you to omit it!
void ClassOne::methodOne() {
    // ...
}
void ClassOne::methodTwo() {
    // ...
    methodOne(); // OK since access is from a member of ClassOne
    // ...
}

要从
methodTwo
调用
methodOne
,只需将
method2
定义为:

void ClassOne::methodTwo() {
    methodOne();
}

要从
methodTwo
调用
methodOne
,只需将
method2
定义为:

void ClassOne::methodTwo() {
    methodOne();
}

所有私有函数和变量都可以从公共函数访问。因此,您可以按如下方式调用您的私有函数:

void ClassOne::methodTwo(){
   methodOne();
}

所有私有函数和变量都可以从公共函数访问。因此,您可以按如下方式调用您的私有函数:

void ClassOne::methodTwo(){
   methodOne();
}
您已经有了
课程
: 实现
类的
功能
void ClassOne::methodOne(){//您已经拥有了
: 实现
类的
功能

void ClassOne::methodOne(){/私有函数仅对对象之外的事物私有。

与任何其他函数一样,您可以在m2中正常调用m1。

私有函数仅对对象之外的对象私有。
与任何其他函数一样,您可以在m2中正常调用m1。

如果希望一个方法调用另一个,请这样做。或者问题是如何在类之外定义方法?如果希望一个方法调用另一个,请这样做。或者问题是如何在类之外定义方法?您忘记了返回类型。@moingduck我省略了它,因为OP做了。但是我可能仍然应该放一个,嗯。你忘记了返回类型。@MooingDuck我省略了它,因为OP做了。但是我可能仍然应该放一个,嗯。你好。我有一个后续问题。既然类方法是用格式returnType className::funcName()定义的,我应该省略“className:”当我编写定义时,私有函数是从公共函数中调用的?还是应该保留它?提前谢谢:)@DonAbril您还没有为这个问题选择答案。一次一个问题。@DonAbril类中的方法在定义时的格式为:
returnType className::functionName(参数)
。当我们在类中为它们编写原型时,只需将它们保留为以下格式:
returnType functionName(parameters)
。您好。我有一个后续问题。既然类方法是使用格式returnType className::funcName()定义的,我是否应该省略“className:”当我编写定义时,私有函数是从公共函数中调用的?还是应该保留它?提前谢谢:)@DonAbril您还没有为这个问题选择答案。一次一个问题。@DonAbril类中的方法在定义时的格式为:
returnType className::functionName(参数)
。当我们在类中为它们编写原型时,只需将它们保留为以下格式:
returnType functionName(parameters)