从上面可以看出对象的大小为荿员变量总的大小,int占用4字节 char由于内存对齐也占用4字节,一共12字节对象的大小只与成员变量有关,和成员函数没有关系将main函数修改┅下:
这说明C++的对象的内存分布是和成员变量相关的,假如对象的起始地址(即上述程序的&T)为0x10000那么该对象的内存分布如下图所示:
const成員变量的用法和普通的const变量用法类似, 只需要再声明时加上const关键字初始化const成员变量只有一种方法,就是通过参数初始化表
const成员函数可鉯使用类中的所有成员变量,但是不能修改它们的值这种措施主要是为了保护数据而设置的。const成员函数也称为常成员函数
常成员函数需要在声明和定义的时候在函数头部的结尾加上const关键字,如:
const 也可以用来修饰对象称为常对象。一旦将对象定义为常对象之后就只能調用类的 const 成员了。
定义常对象的语法和定义常量的语法类似:
当然也可以定义 const 指针:
class为类名object为对象名,params为实参列表p为指针名。两种方式定义出来的对象都是常对象
一旦将对象定义为常对象之后,不管是哪种形式该对象就只能访问被 const 修饰的成员了(包括 const 成员变量和 const 成員函数),因为非 const 成员可能会修改对象的数据(编译器也会这样假设)C++禁止这样做。
友元就是用来控制访问一个类中的private成员的