Const
1.const修饰变量的时候,初始化只能在初始化列表和类内;
2.const修饰类内成员函数的时候;该成员函数不能修改类内的变量,除非变量有mutable修饰:
3.const修饰一个对象,该对象叫做常对象,且只能调用const成员
定义一个空类<Empty>的时候,系统会自动生产哪些函数?
以及:默认移动构造函数 和 默认移动赋值运算符
对象的大小,是不包含static的成员
指向类成员的指针
掌握指向类成员和函数的指针定义方法
#include <iostream>
using namespace std;
class Test
{
public:
Test()
{
cout<<"Test"<<endl;
}
~Test()
{
cout <<"~Test"<<endl;
}
void func()
{
cout <<"hello world"<<endl;
}
int num;
int num2;
};
int main()
{
Test T1;
int *p0=&T1.num; //实例化对象内的num地址
printf("%p\n",p0);
int Test::*p1=&Test::num;
int Test::*p2=&Test::num2;
printf("%p\n",p1); //偏移量
printf("%p\n",p2);
void (Test::*p_fun)()=&Test::func;
return 0;
}
如何获取static 的静态成员/函数的地址???
//类内静态的成员和函数,定义指针的写法:
int *p3=&Test::num3;
void (*p_func2)()=&Test::func2;
printf("p_fun= %p\n",p_fun);
printf("p_func2= %p\n",p_func2);