-
常成员函数
查看全部 -
内存中的对象成员指针
实例化Line对象时,两个指针会被定义出来-占8个基本内存单元(32位编译环境中,一个指针占4个基本内存单元)
在构造函数中,通过new实例化两个Coordinate对象,内存在堆中,而不在Line对象中-占16个基本内存单元(4个int型)
当我们销毁Line时,应先释放掉堆中的内存,然后释放掉Line对象本身的内存
查看全部 -
对象指针
在堆中分配内存
查看全部 -
(1)常对象只能调用常成员函数(最后面加const),或是公用的常数据成员
(2)私有的常数据成员,初始化要用成员初始化列表
(3)常成员函数,本质就是把this指针指向的变量变为常量,所以形如这样:this->a = 10;是错误的,因为this指向的量a是一个常量,不可以更改值。所以在常成员函数体中是不可以更改this指针指向的数据成员的值的
(4)常成员函数中也不能调用普通成员函数,但是可以访问到私有的数据成员
查看全部 -
深拷贝:
当进行对象拷贝时,不是简单地做值的拷贝,而是将堆中内存的数据也进行拷贝。
查看全部 -
用const修饰对象成员,对象成员就变成了常对象成员 用const修饰成员函数,成员函数就变成了常成员函数。const要放在函数的最后, 一旦初始化就不能再修改,const就是干这个的,长对象成员用初始化列表初始化 函数里看着没有参数,实际上隐藏着this指针。常成员函数中隐藏的是常this指针,常指针指向的数据不允许被修改 例如:void Coordinate::changeX(){m_iX = 10;}即为void Coordinate::changeX(Coordinate *this){this->m_iX = 10;} void Coordinate::changeX()const{m_iX = 10;}即为void Coordinate::changeX(const Coordinate *this){this->m_iX = 10;}这里的m_iX = 10;的写法是错误的,this已经是常指针,通过常指针是无法修改值的 void changeX();与void changeX() const互为重载 要调用const修饰的常成员函数,实例化对象时,必须用const来修饰对象,const写在最前面
查看全部 -
对象各自的this指针指向各自对象的首地址,所以不同对象的this指针一定指向不同的内存地址
查看全部 -
堆中实例化的数组需要手动销毁释放内存,在栈中实例化的数组,系统自动回收内存
查看全部 -
对象成员的定义和使用方法 可以多看两遍加深记忆
查看全部 -
这个视频多看两次
查看全部 -
动画控制
查看全部 -
常对象只能调用常成员函数,不能调用普通成员函数
普通对象能够调用常成员函数,也能够调用普通成员函数
常指针和常引用都只能调用对象的常成员函数
一个对象可以有多个对象常引用
查看全部 -
查看全部
-
一个对象可以有多个对象常引用
查看全部 -
常对象只能调用常成员函数,不能调用普通成员函数
B普通对象能够调用常成员函数,也能够调用普通成员函数
C常指针和常引用都只能调用对象的常成员函数。
查看全部
举报