最赞回答 / drivermonitor
因为A包含了对象B,也就是说要想“建造”A,必须先有B作为基础,所以,当对象B是对象A的一个数据成员时,先构造B,再构造A。可以利用代码简单跟踪一下:<...code...>
2016-01-01
最新回答 / Nighthawk
p++时指针移到下一个位置了,此时的p[0]就是移动后的位置了,同理p[1]就是移动后的下一个位置,指针p这时还是在第一次移动后的位置,要想指到下一个位置,当然要p++了,不知道解释的清楚不。
2015-12-30
最赞回答 / 大只茹
int *p = new int[5];此时p不仅是一个指针,指向数组的第一个元素,而且还可以做数组名使用,因此p[0],p[1],p[2]..依次表示数组元素的内容;而p,p+1..则存放的是数组各元素的地址;*p,*(p+1)..也表示数组元素的内容。
2015-12-05
已采纳回答 / DoDream
因为要调用父类的有两个参数的那个构造函数,如果初始化放在子类的构造函数中而不用初始化列表,很难调用父类的有两个参数的那个构造函数,当然你可以在子类的构造函数中这样写:m_coorA.x = x1;m_coorA.y = y1;m_coorB.x = x1;m_coorB.y = y1;这样写可以达到初始化的目的,但写的代码就多了,直接调用父类的有两个参数的那个构造函数就简单多了,所以选择用初始化列表。
2015-11-26
最新回答 / 再吃一个苹果_
# include <iostream>using namespace std;class Coordinate{public: Coordinate(){cout << "Coordinate()" << endl;} ~Coordinate(){cout << "~Coordinate()" << endl;} int m_iX; int m_iY;};int main(){Coordinate coor[3];coo...
2015-11-24
已采纳回答 / Power12138
第一个问题:new指的是在堆中分配m_iCount个int内存单元,这块内存单元的首地址赋给m_pArr指针变量,这样子的会就可以通过m_pArr去访问这块内存单元第二个问题,答案是一样的,第二个更加细节的描述就是第一个那样子去写
2015-11-23
已采纳回答 / onemoo
const对象是一旦被构造出来,其值就不能被改变了。而构造初始化列表就是用来构造成员变量的,对const成员来说,初始化列表中提供的值就作为构造它们的初值。所以这里并不是赋值操作。
2015-10-30