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

时间:2015-04-14 23:57:13

标签: c++ function class

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

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

class ClassOne {
    private:
    void methodOne();

    public:
    void methodTwo();
};

所以我应该能够通过methodTwo访问methodOne但不在methodOne旁边写{ methodTwo();}。请帮帮我?

5 个答案:

答案 0 :(得分:3)

您已拥有class

class ClassOne {
    private:
    void methodOne();

    public:
    void methodTwo();
};

实施functions的{​​{1}}:

class

答案 1 :(得分:1)

类定义声明成员函数methodOnemethodTwo但不定义它们。你需要在课外定义它们。

// 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
    // ...
}

答案 2 :(得分:0)

要从methodOne致电methodTwo,只需将method2定义为:

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

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

私有函数仅对对象外部的东西是私有的。 你可以正常调用m2中的m1,就像任何其他函数一样。