问题描述
- 一小段c++代码求大神教
-
部分代码
Point f(double x, double y)
{
Point P(x,y);
return P;
}
void main()
{
Point A(0,0);
Point B = f(3,4);
}Point是自定义的类
请问调用几次拷贝构造函数?
自己试过 。可是 vs调用了一次,vc调用了两次。哪个正确?
解决方案
1.应该是调用2次,vs调用一次,可能是Point A(0,0)被编译器优化掉了。
2.建议再main函数中添加对A进行访问的代码,然后在vs上测试,再看看调用了几次。
解决方案二:
VC6.0版本不是特别支持c++语法, 理论上调用两次,vs优化掉一次所以就掉用了一次
解决方案三:
应该是调用2次,一次是函数f返回的时候,另一次是对B初始化的时候
至于说vs只调用了1次,可能和bs的编译器有关,你看看是否可以设置其编译选项,去掉优化之类的设置。
时间: 2024-11-02 06:05:17