-
在对象内做数据成员的对象做叫做对象成员,而且在实例化对象时先执行对象成员的构造函数,然后执行外部对象的构造函数,在销毁时,先执行外部对象的析构函数,最后执行对象成员的析构函数,两个函数的执行顺序相反!查看全部
-
new来实例化对象对调用类对应的构造函数,而malloc却只是分配空间。查看全部
-
非默认构造函数对象成员初始化(3)查看全部
-
非默认构造函数对象成员初始化(2)查看全部
-
非默认构造函数对象成员初始化(1)查看全部
-
visualstudio 选中一段代码,ctrl+k+c 注释掉此段代码查看全部
-
C++:new 分配内存,自动调用对象构造函数(对象指针) C :malloc 只分配内存,不调用对象构造函数查看全部
-
1.注意初始化列表格式 2.注意对象数组初始化时的格式 //定义对象数组 Coordinate coorArr[2]{{1,2},{3,4}};查看全部
-
#include <iostream> using namespace std; class Coordinate { public: Coordinate() { } // 打印坐标的函数 void printInfo() { cout<<"("<<m_iX<<","<<m_iY<<")"; } public: int m_iX; int m_iY; }; int main(void) { Coordinate *p=new Coordinate[2]; for(int i=0;i<2;++i){ p[i].m_iX=i*2+1; p[i].m_iY=i*2+2; } for(int i = 0; i < 2; ++i) { p->printInfo(); p++; } p=p-2; delete []p; p=NULL; return 0; }查看全部
-
很难懂查看全部
-
1、this指针无需用户定义,是编译器自动产生的。 2、同一个类的两个对象的this指针指向不同位置的内存:对象各自的this指针指向各自对象的首地址,所以不同对象的this指针一定指向不同的内存地址 3、当成员函数的参数或临时变量与数据成员同名时,可以使用this指针区分同名的数据成员。 4、this指针也是指针类型,所以在32位编译器下也占用4个基本的内存单元,即sizeof(this)的结果为4。查看全部
-
p++是下一个元素,P[0]就不是第一个元素 p[0]是p++后的元素查看全部
-
Array printInfo();要求返回值类型是一个对象,而Array Array::printInfo(){return *this}的返回值就是一个对象。 this指针系统会自己加 Array Array::printInfo(){return *this;}返回出去之后的*this指针是一个临时的对象,并不是arr1 Array& Array::printInfo(){return *this;}这样返回出去的就是arr1(即当前创建的对象)了。 加入引用之后,一切都清晰起来了 使用点号可以将多个方法穿起来使用 如果用的是&,返回值要加*,即为*this,使用函数是用点号 如果用的是*,即为指针,返回值不用加* ,即为this,使用函数是用-> 1.可用this指针做返回 2.*this对象做返回与引用Array &配合 都可对原对象做操作查看全部
-
1. 常对象只能调用常成员函数。 2. 普通对象可以调用全部成员函数。 3. 当对一个对象调用成员函数时,编译程序先将对象的地址赋给this指针,然后调用成员函数,每次成员函数存取数据成员时,将隐含使用this指针。 4. 当一个成员函数被调用时,自动向它传递一个隐含的参数,该参数是一个指向这个成员函数所在的对象的指针。 5.在X类的const成员函数中,this指针的类型为:const X* const, 这说明this指针所指向的这种对象是不可修改的(即不能对这种对象的数据成员进行赋值操作)。 定义方式: 常对象定义的语法:const 类名 对象名(参数列表)|| 类名 const 对象名(参数列表)//声明时必须初始化 常成员函数定义的语法:类型标识符 类名::函数名(参数列表) const 常成员函数声明的语法:类型标识符 成员函数名(参数列表) const 互为重载:常对象只能调用常成员函数查看全部
-
new分配内存示意图查看全部
举报
0/150
提交
取消