const成员
class person
{
public:
void printc() const
{
cout << "hi" << endl;
}
int m_a;
};
如上,类中的函数后加了const修饰便为const的成员函数,若加了const修饰则该函数里面不能对值进行修改。若重复名,普通对象默认调用普通函数无法调用const函数,若只有const函数则普通对象可以调用const函数。const对象不能调用普通函数只能调用const修饰的函数
ststic对象
class person
{
public:
static void printc()
{
cout << "hi" << endl;
}
int m_a;
};
如上,加了ststic便是ststic函数,这个函数不属于类,类外可以直接调用不需要用对象
ststic int a;
也可以用ststic修饰一个变量,该变量只会在程序结束的时候释放
friend对象
class MM
{
friend class person;
protected:
void printmm()
{
cout << "mm" << endl;
}
};
class person
{
public:
void printpe()
{
MM m1;
m1.printmm();
}
private:
int m_b;
};
如上,用firend申明person为MM的友元,person内就可以访问私有和保护权限
this指针:
谁调用,this便指向谁
class MM
{
public:
MM(int a)
{
this->m_a = a;
}
int m_a;
};
若p1调用则这个this指向p1,p2调用就指向p2,this的地址由调用者决定 explicit:
class MM
{
public:
explicit MM(int a)
{
this->m_a = a;
}
int m_a;
};
用exolicit修饰构造函数可以防止隐式类型转化
|