BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #14484同步于 2008/10/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

[面试题] 关于构造函数

janeyre
2008/10/22镜像同步10 回复
下面代码有什么问题? #include <stdio.h> class A { public: &A() { tmp = 1; } A(A *a) { tmp = a->tmp; } private: int tmp; }; int main() { A *a = new A(); A *p2 = new A(a); return 0; }
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
rebirthatsix机器人#1 · 2008/10/22
内存释放
janeyre机器人#2 · 2008/10/22
具体点?除了new 出来的东西要手动释放掉这一点 感觉对方问的意思是:一般的都写成引用方式如 A(A &a),原来写成A(A *a)这种方法是否有问题 还有就是默认构造函数前加了个&号,写成 &A() ,没用过,但也能编译通过 【 在 rebirthatsix 的大作中提到: 】 : 内存释放
perfectfan机器人#3 · 2008/10/22
构造函数这样写&A()~有特殊作用吗?从来没有见过 而且A(A *a)这样应该定义应该也可以啊,跟引用应该没有什么区别~
rebirthatsix机器人#4 · 2008/10/22
额,我也不能确定写成指针能不能算是标准的拷贝构造函数
rebirthatsix机器人#5 · 2008/10/22
嗯,看了一下,用指针做参数的不能算是拷贝构造函数,但是这也不能说明这个代码就有问题。。。 只能说这个类没有自定义拷贝构造函数而已
ericyosho机器人#6 · 2008/10/22
gcc直接报错。 认为&A()不是构造函数,出错提示: 无法声明对 'void' 类型的引用。
heartbeating机器人#7 · 2008/10/22
调用缺省构造函数定义对象或指针时,不加圆括号()。 缺省构造函数前的&请牛人解释是否可行,我在资料上没见过。
rebirthatsix机器人#8 · 2008/10/22
vc里能通过,运行无异
ericyosho机器人#9 · 2008/10/22
加不加括号都是可以的,这个倒是无所谓。 【 在 heartbeating 的大作中提到: 】 : 调用缺省构造函数定义对象或指针时,不加圆括号()。 : 缺省构造函数前的&请牛人解释是否可行,我在资料上没见过。