// Example program
#include <iostream>
#include <string>
using namespace std;
class Test
{
public:
Test()
{
cout << "Default constructor" << endl;
}
Test(const Test& ob)
{
cout << "lvalue- copy constructor" << endl;
}
Test& operator=(const Test& ob)
{
cout << "lvalue - assignment" << endl;
return *this;
}
};
Test getObj()
{
Test ob;
return ob;
}
void f1(const Test& ob)
{
cout << "f1" << endl;
}
int main()
{
f1(getObj());
}
Output:
Default constructor
f1
鉴于f1()中的ob是在堆栈上分配的,我希望调用复制构造函数来创建一个临时对象,其引用传递给f1()。看起来并非如此。有什么想法吗?
我已经使用符合C ++ 98的编译器编译了程序,并关闭了所有优化。