可以检查(例如通过 gcc)哪些方法或成员可以移动到 protected 或私有(private)部分?
最佳答案
考虑以下代码部分:
class foo{
protected:
void foo_method_1(){};
int foo_member_var;
};
class bar : public foo{
void bar_method_1(){
foo_method_1();
}
};
如果你想确定 foo 类的哪些成员和方法可以是私有(private)的,你必须将它们全部移动到私有(private)部分。所以它看起来像这样:
class foo{
private:
void foo_method_1(){};
int foo_member_var;
};
...
现在它无法编译,这是 GCC 抛出的第一个错误:
prog.cpp:5:8: error: 'void foo::foo_method_1()' is private
void foo_method_1(){};
据此您知道,您必须将 foo_method_1 移动到 protected 部分。所以它看起来像这样:
class foo{
private:
int foo_member_var;
protected:
void foo_method_1(){};
};
...
现在可以编译了。您必须对类中的每个方法和成员重复此过程。对于公共(public)部分,您可以按照上述相同的方式进行操作。
关于c++ - 确定方法或成员是否可以 protected 或私有(private),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37274550/