关于课程,有些事情让我烦恼.例如
class A
{
public:
A()
{
.....
.....
}
void cleanup()
{
....
....
....
}
public:
UINT a;
ULONG b;
};
Run Code Online (Sandbox Code Playgroud)
在上面的例子中有两个公共部分.在第一部分中,我定义了一个构造函数和一个方法,在第二部分中,我将声明数据成员.上面的类是A正确的.我们可以这样做吗?如果是,那么为什么需要这样做以及在什么情况下我们应该使用它?既然我们可以在一个部分完成整个事情,那么为什么有两个部分呢?
Mar*_*tos 27
访问限定符只适用于下一个限定符之后的代码.对此类限定符的数量或顺序没有限制.
通常没有必要在类中重复相同的访问限定符,这样做可能会使读者感到困惑.它们也可能对类的布局产生影响,因为遵循相同限定符的数据成员必须按声明的顺序排列,但限定符之间没有这样的限制.
Ski*_*izz 11
正如马塞洛所说,你可以根据自己的意愿多次使用公共,私人和受保护的资格赛."什么时候"完全是个人的.有些人喜欢这样:
class AClass
{
public:
// all the public stuff
protected:
// all the protected stuff
private:
// all the private stuff
};
Run Code Online (Sandbox Code Playgroud)
但个人(这真的只是个人喜好)我喜欢这样做:
class AClass
{
// constructors and destructors
public:
// public cons/dest
protected:
// protected cons/dest
private:
// private cons/dest
// accessors
public:
protected:
private:
// methods
public:
protected:
private:
// members
public:
protected:
private:
};
Run Code Online (Sandbox Code Playgroud)
无论您喜欢什么,都可以随意提出自己的风格.没有正确或错误的方法.试着保持一致.
我通常会尝试安排类的声明,以便其他人可以轻松使用该类。
通常是这样的:public/protected/private,按这个顺序,因为它简化了读者的生活。
protected标签后停止阅读,之后的任何事情都与他们无关。private标签就可以停止阅读,后面的任何内容都是实现细节。再加上不在声明点编写方法的代码,就形成了一个易于阅读的界面。
不过,还有一些技巧:
public/protected/privatefriend)时,您public实际上有一个部分仅专用于一小部分用户,最好将其隔离在正常public部分的底部或该protected部分之后。最后评论一下属性之间的布局问题。封装意味着属性应该是private。所以,要么你有一个struct并且一切都是public,要么你有一个类并且一切都是private,混合这两者意味着破坏封装,这是一个正在形成的错误。
| 归档时间: |
|
| 查看次数: |
8664 次 |
| 最近记录: |