我在类定义中看到了多个 public 和 private 关键字,如下例所示:
class myClass
{
public:
void func1(){}
public:
void func2(){}
private:
int x;
int y;
private:
int z;
int baz;
};
Run Code Online (Sandbox Code Playgroud)
这个(如果有的话)的实际用途是什么?在任何情况下这可能有用吗?
在什么情况下这可能有用?
我可以想到一种情况,否则会出现很大问题:
class myClass
{
public:
void func1(){}
public:
void func2(){}
COORDINATES; // <-- Note the macro here!
private:
int z;
int baz;
};
Run Code Online (Sandbox Code Playgroud)
宏展开后COORDINATES
,变为:
class myClass
{
public:
void func1(){}
public:
void func2(){}
private:
int x;
int y;
private:
int z;
int baz;
};
Run Code Online (Sandbox Code Playgroud)
如果不允许使用多个private
/关键字,那么做起来会非常痛苦。public
尽管使用宏并不是一个好习惯;也不是为宏后面出现的所有成员默默地引入访问修饰符。尽管如此,它对于生成 C++ 源代码的 RAD 工具可能很有用。
我只能猜测为什么你会在人类书面课程中看到这一点。我的猜测是,这是糟糕的编码;作者可能想要表达一块数据属于一起和/或希望能够在类定义中上下移动这些数据块以及相应的访问修饰符 ( private/protected/public
)。