已采纳回答 / 一曲幽魂付衷情
A *a=new A; 和 A *a=new A(); 都是调用A类的默认构造函数!!!!但是如果单独声明一个A 类变量,如:A a;则调用的是默认构造函数,但是不能写成 A a()来调用默认构造函数!!因为这种形式会被识别成一个:名称为a的不接受任何参数,返回值为A类型的函数!!!
2015-10-18
已采纳回答 / onemoo
可以直接返回Array,但这样并不好。&这表明返回的是array引用。类成员函数有时打算返回类实例自身,就会返回*this的引用。而有时并不一定需要返回自身,但仍会选择返回引用,原因如下:函数在返回值的时候,是先用你要返回的变量去构造一个临时变量,再将这个临时变量返回给接受返回值的调用者。在调用者使用过后,这个临时变量再被自动销毁。如果返回的是一个很大的类实例的话,构造这个临时变量会调用拷贝构造函数,这可能造成很大的运行开销(例子中的情况下array会被整个复制一遍)。为了减少这种负面影响,在一些...
2015-10-17
我用的不是windows系统,system("pause");没用,所以浅拷贝时console输出如下:
test(10901,0x7fff7838a300) malloc: *** error for object 0x7ffe08404ba0: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
Abort trap: 6
test(10901,0x7fff7838a300) malloc: *** error for object 0x7ffe08404ba0: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
Abort trap: 6
2015-10-10