-
释放指针申请的空间时应使指针指回原来的位置查看全部
-
常对象初始化时要使用初始化列表完成 常成员函数中不能改变数据成员的值查看全部
-
ctrl+k+c会将所圈住的代码注释掉。。。查看全部
-
Coordinate * const pCoor = &coor1 : 这种方式定义的常指针“只能指向coor1,但可以调用coor1的不同的函数”;(拥有读写权限) const Coordinate *pCoor = &coor1 : 只能调用coor1的“常成员函数”。(只拥有读权限)查看全部
-
实例化指针需要多练习查看全部
-
对象成员指针:对象的指针作为另一个类的数据成员查看全部
-
对象的常引用和常指针,常引用只有读权限,常引用只能调用常成员函数(后加const的函数),常指针只能调用常成员函数。一个对象可以有多个对象常引用。常对象只能调用常成员函数。普通对象能够调用常成员函数,也能够调用普通成员函数。常指针和常引用都只能调用对象的常成员函数。查看全部
-
常成员函数就是将this指针修改为常指针,只能读不能写,即(const Coordinate *this)查看全部
-
通过常指针修改此指针指向的数据是不被允许的 常成员函数与同名的函数互为重载查看全部
-
常成员函数不能修改数据成员的值查看全部
-
常成员函数 eg void Coordinate::changeX() const{}查看全部
-
this指针和引用(可修改原来的类实例化后的内容) Array& printInfo() { return *this; } arr1.printInfo.setLen(5);查看全部
-
堆中实例化的数组需要手动释放内存;栈中实例化的数组系统自动回收内存查看全部
-
常成员函数中可以使用普通的数据成员,但是不能改变对象成员的值查看全部
-
1. 常对象只能调用常成员函数。 2. 普通对象可以调用全部成员函数。 3. 当对一个对象调用成员函数时,编译程序先将对象的地址赋给this指针,然后调用成员函数,每次成员函数存取数据成员时,由隐含使用this指针。 4. 当一个成员函数被调用时,自动向它传递一个隐含的参数,该参数是一个指向这个成员函数所在的对象的指针。 5. 在C++中,this指针被隐含地声明为: X *const this,这意味着不能给this 指针赋值; 在X类的const成员函数中,this指针的类型为:const X* const, 这说明this指针所指向的这种对象是不可修改的(即不能对这种对象的数据成员进行赋值操作); 6. 由于this并不是一个常规变量,所以,不能取得this的地址。 由于a是const对象,所以a只能调用类A中的常成员函数。 那么为什么会提示:“不能将this指针.....”的语句呢 因为对于c++的成员函数(当然不是静态成员函数),都会含有一个隐藏的参数,对于上例A中的int GetValue()函数,在编译后会变成: int GetValue(A * const this); //不能修改this变量,但可以修改this指向的内容,即:this是常量指针。 而对于int GetValue()const ,编译后是: int GetValue(const A* const this); 只所以this指针是const类型,从编译后的结果看就很清楚了, 因为a是const,所以其this指针就对应: const A* const this ; 而print函数被编译出来后对应的是void print(A* const this); 在进行参数匹配时, 所以就会提示 “不能将“this”指针从“const A .." this指针的出现就解释了,用哪一个对象的数据成员。通常情况下,this指针是隐含存在的,也可以将其显示的表示出来(即如上例中的 this->mValue。不过this指针只能在类中使用) 还有就是 this指针是一个const指针;查看全部
举报
0/150
提交
取消