-
对象各自的this指针指向各自对象的首地址,所以不同对象的this指针一定指向不同的内存地址查看全部
-
#include <iostream> using namespace std; class Coordinate { public: Coordinate(int x, int y) { // 设置X,Y的坐标 m_iX=x; m_iY=y; } public: int m_iX; int m_iY; }; int main(void) { // 在堆上创建对象指针 Coordinate *p=new Coordinate(3,5); // 打印坐标 cout <<"("<<p->m_iX<<","<< p->m_iY<<")"<< endl; // 销毁对象指针 delete p; p=NULL; return 0;查看全部
-
普通成员函数,要求其内部this指针有可读可写能力,如果是常对象,数据成员以及传入的this指针只有可读能力,无法满足普通成员函数this要求,故使用常成员函数限定this指针能力,但set()函数要改变数据成员,故无论是普通还是常set()函数都不可用。查看全部
-
没有讲set怎么改,或者就是不能改,疑问处查看全部
-
#include <iostream> using namespace std; class Coordinate { public: Coordinate(int x,int y):m_iX(x),m_iY(y) { } // 打印坐标的函数 void printInfo() { cout<<"("<<m_iX<<","<<m_iY<<")"<<endl; } public: int m_iX; int m_iY; }; int main(void) { //定义对象数组 Coordinate coorArr[2]{{1,2},{3,4}}; coorArr[0].m_iX=1; coorArr[0].m_iY=2; coorArr[1].m_iX=3; coorArr[1].m_iY=4; //遍历数组,打印对象信息 for(int i = 0; i < 2; i++) { coorArr[i].printInfo(); } return 0; }查看全部
-
类型 ^X^类::函数名() { return Y; } 类型 X = Y,接收值是X。查看全部
-
(*P).xxx = arr.xxx = P→xxx *P即 = 对象 类 对象 数据成员查看全部
-
(*P).xxx = arr.xxx = P→xxx *P即 = 对象 类 对象 数据成员查看全部
-
常对象只能调用常成员函数,不能调用普通成员函数 普通对象能够调用常成员函数,也能够调用普通成员函数 常指针和常引用都只能调用对象的常成员函数查看全部
-
常成员函数中可以使用普通的数据成员,但是不能改变对象成员的值查看全部
-
快捷注释:ctrl+k+c查看全部
-
Array(const Arry& arr)其中arr是传进的数组(形参),将其值赋给拷贝中的值查看全部
-
栈:类名 对象coor[3];//在栈实例化对象coor[0].m_iX=3;系统自动回收内存。 堆:类名 *p = new 类名[3];//在堆中实例化对象。可p->m_iX=7(p目前所指为初始位置,要用此法指后面值需要改变p指向,++p);或者p[0].m_iX=7。手动释放:delete []p;//执行3次析构函数,将数组内全部释放掉。查看全部
-
堆中实例化的数组需要手动销毁释放内存,栈中实例化数组系统会自动回收内存(如果定义析构函数打印出某些数据,控制台会打印出来,但是栈中实例化的打印很快,不容易看到)查看全部
-
1.实例化对象A时,如果对象A有对象成员B,那么先执行对象B的构造函数,再执行A的构造函数。 2.如果对象A中有对象成员B,那么销毁对象A时,先执行对象A的析构函数,再执行B的析构函数。 3.如果对象A中有对象成员B,对象B没有默认构造函数,那么对象A必须在初始化列表中初始化对象B。查看全部
举报
0/150
提交
取消