1.访问控制:
public, private, protected
2.友元:
struct X{
private:
int i;
friend void g(X*, int); //Global friend
friend void Y::f(X*); // Struct member friend
friend struct Z; // Entire struct
};
void g(X* x, int i){
x->i=i;
}
3.不完全的类型声明。时刻想着编译器怎么处理程序的。例如Y::f() 就只能用指针引用。
struct X;
struct Y{
void f(X*);
};
struct X {
private i;
}