1.新的访问控制符
除了public和private以外,还有一种访问控制符,就是protected。protected介于public和private中间。public:派生类,类内,类外,友元均可访问。private:类内,继承private,友元可访问,其余不可。protected:类内,派生类(无论继承的是什么,只要继承该类),友元可访问。例子:
class A{
private:
int a;
protected:
int b;
public:
int c;
};
class B:public A{
public:
int d;
};//B成员可访问b,c
class C:private A{//private可写可不写(默认)
public:
int e;
};//C成员可访问a,b,c
2.this 指针
this指针是类内的一个隐式(也可使用)指针。所以,你可以返回它。如:
#include<iostream>
using namespace std;
class A{
public:
A& where(char);
char b;
};
inline A::A& where(char a)
{
//因为在类的作用域内,所以无需用 .来访问。
b=a;
return *this;//返回this
};
3.静态成员
静态成员不属于任何其他成员。此外,静态成员还可以是不完全类型。如:
class A{
public:
//...
private:
static A type;
A *you;
A error;//错误:数据成员必须为完全类型
};