作者occqoo (小欧)
看板EE_DSnP
标题[问题] Copy Constructor
时间Thu Oct 14 14:49:52 2010
在写作业1.2 P2的时候愈到了一点小问题
本来想说检查一下自己的code
就用cout大法(老师不要杀我)在Matrix的copy constuctor中
加上了cout<<"Matrix copy";
结果在执行hw1.2.p2.cpp中的
Matrix m1 = InputMatrix()
发现并没有Matrix copy这行输出
用ddd检查发现copy constructor真的没有被呼叫到
跟上课时讲得好像有点不同(还是我搞错了)
进一步检查发现destructor也一样没有被呼叫过
稍微Google了一下
好像有人说g++在这种function return的情况下会自动作优化
并不会真的去呼叫我们写的copy constructor
不知道版上有没有强者知道实际状况
不然好像自己写得code都没有被执行的样子
感谢大家或老师帮忙解答喽~
p.s 2732篇都没有人回答我QQ
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.244.187
1F:推 yangjiunru:这是Return value optimization 10/14 15:29
2F:→ yangjiunru:en.wikipedia.org/wiki/Return_value_optimization 10/14 15:29
3F:推 yangjiunru:g++的话可以在compile的时候加参数关掉这个功能 10/14 15:34
4F:→ yangjiunru:g++ -fno-elide-constructors -o xxx xxx.cpp 10/14 15:35
5F:→ occqoo:所以这次作业正确的话要用上面那个方式compile喽? 10/14 16:04