源于对类定义规范的思考: 公有接口放在最前面, protected 的其次, private最后. 按照重要的程度和应该在维护时被关注的程度划分, 应该很有意义, 但稍后看到一些代码中, 把一些private的最在了最前面, 恰好后面出现了public的函数实现(直接定义在类的定义中), 考虑到C/C++引用一个对象之前必需先看到其声明的严格规则(比如函数原型, 变量声明), 继而很怀疑前面的规范的可行性, 以为如果一个成员函数要使用一个成员变量, 则必需让这个成员变量被声明在先.
实际上, 下面的类定义是正确的. 在一个类定义中, 被引用的成员可以定义在后:
class X {
public:
X(int x):x_(x) { printf("%s\n", __FUNCSIG__);foo(); }
private:
void foo() { printf("x_=%d\n", x_); }
int x_;
};
阅读(807) | 评论(0) | 转发(0) |