类成员:
空类大小:
一个空类即使没有任何数据存储其大小也不能为0,空类实例占用的大小为1,用来在内存中占位
创建多个对象,对象成员属性的地址不同
属于对象的成员属性,在定义对象时才会存在
int a=10;
int& b=a;//初始化引用
b=20;
cout<<a<<endl;//20;
int aa=1;
b=aa;//赋值操作this指针:
由编译器默认添加到类中的非静态成员函数
作用:指向了调用该函数的对象,在函数中使用其他成员都是通过this指针间接使用的
类型是CTest * const this
this指针既是指针变量,也是关键字
静态成员:
静态成员属性:
特点:
属于类的,不参与对象的空间占用,在编译期就存在
需要在类外进行初始化,省略static关键字
可直接类名作用域去调用,也可以调用对象去调用
class CTest {
public:
int m_a;
static int m_b;
};
int CTest::m_b=10;
静态成员函数:
属于类的,编译期存在,一个类中存在一份,被多个对象所共享,存在与否与是否定义对象无关
在没有对象的情况下,仍然可以使用静态成员函数
如果存在对象,也可以通过对象去使用
注意:静态成员函数不能使用一般的成员函数
一般的成员函数和静态成员函数的区别:
1.静态成员函数 没有隐藏的this指针参数,一般的成员函数有。
2.静态成员函数 只能使用静态的成员,一般的成员函数都可以使用。
3.静态成员函数 是否通过对象调用都可以,一般的成员函数必须通过对象调用。
const常量,常函数和常量对象
常量:
带有const的变量在定义的时候必须要初始化,且初始化是在初始化参数列表中完成的,不能在函数体内
部进行赋值操作
class CTest {
public:
int m_a;
static int m_b;
};
int CTest::m_b=10;常函数特性:不能修改类中的非静态成员
常量指针升级降级
int *p3=&a;
const int *p4=p3;//指针的安全级别升级
常函数不能调用普通的类成员函数(指针降级)
普通的类成员函数可以调用常函数、
常函数能调用静态成员函数,但是静态成员函数不能调用普通成员函数以及常函数
1001

被折叠的 条评论
为什么被折叠?



