-
常对象只能调用常成员函数。查看全部
-
初始化列表,析构函数后 冒号隔开查看全部
-
地址拷贝-----浅拷贝 值拷贝-------深拷贝查看全部
-
实例化对象A时,如果对象A有对象成员B,那么先执行对象B的构造函数,再执行A的构造函数。 如果对象A中有对象成员B,那么销毁对象A时,先执行对象A的析构函数,再执行B的析构函数。 如果对象A中有对象成员B,对象B没有默认构造函数,那么对象A必须在初始化列表中初始化对象B查看全部
-
常指针查看全部
-
1.一个对象作为另一个对象的数据成员,称为“对象成员” 2.对象成员的创建次序: 先创建成员对象,再创建包含着成员对象的对象。 3.对象成员的销毁次序: 先销毁包含了成员对象的对象,再销毁成员对象。查看全部
-
生疏查看全部
-
生疏查看全部
-
指针加了一次?查看全部
-
<<创建常指针别忘记后面需要用的取地址符号>> #include <iostream><br> using namespace std;<br> class Coordinate<br> {<br> <br> public:<br> Coordinate(int x, int y)<br> {<br> // 设置X,Y的坐标<br> m_iX = x;<br> m_iY = y;<br> }<br> // 实现常成员函数<br> void printInfo() const<br> {<br> cout <<"("<<m_iX<<","<<m_iY <<")"<<endl;<br> }<br> public:<br> int m_iX;<br> int m_iY;<br> };<br> <br> <br> int main(void)<br> {<br> const Coordinate coor(3, 5);<br> <br> // 创建常指针p<br> const Coordinate *p =&coor;<br> // 创建常引用c<br> const Coordinate &c= coor;<br> <br> coor.printInfo();<br> p->printInfo();<br> c.printInfo(); <br> <br> return 0;<br> }查看全部
-
常对象只有常成员函数军队,普通对象有常成员函数和普通成员函数军队<br> 常指针和常引用都只能调用对象的常成员函数 一个对象的可以有多个对象常引用查看全部
-
Coordinate coor1(3,5); Coordinate &coor2 = coor1; Coordinate *pCoor = &coor1; 定义了一个引用,引用的名字是coor2,并且用coor2指向coor1,coor1就有了coor2的别名。给对象指针赋值的时候一定要加取地址符号&,例如Coordinate *pCoor = &coor1;<br> const Coordinate &coor2 = coor1;对象的常引用 const Coordinate *pCoor = &coor1;对象的常指针<br> 常引用只有读权限 coor2.getX()中,coor2只读,getX()具有读写权限<br> Coordinate * const pCoor = &coor1;一旦指定一个对象之后,就不能再指向别的对象,只限指向的对象不能变,但是指针本身指向对象的内容是可变的,指向的对象是可以读写的(即为pCoor不能指向其它位置,它指向的位置中的内容是可以变的)<br> 如果const Coordinate *pCoor = &coor1;这是常对象,因此只能调用常成员函数 常引用和常指针中,const都是在最前面查看全部
-
常成员函数内不能调用普通的成员函数 常成员函数中可以使用常数据成员,只是常数据成员的值不允许改变。因为常成员函数内使用数据成员是,不能改变数据成员的值查看全部
-
const可以写在类名的前面,也可以写在类名的后面<br><br><br><br> const Coordinate m_coorA;也可以是Coordinate const m_coorA;<br><br><br> 常对象能且仅能调用常成员函数,即为配套使用,即为一般对一般,常对常<br><br> const Line line(1,2,3,4);此时line变成了常对象成员 常成员函数可以使用常数据成员和普通数据成员,但是不能改变它们的值查看全部
-
用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;} void changeX();与void changeX() const互为重载 要调用const修饰的常成员函数,实例化对象时,必须用const来修饰对象,const写在最前面查看全部
举报
0/150
提交
取消