名前空間内からオブジェクトを返すことは安全ですか? 以下のコードcall()
では、bag オブジェクトを値で返しています。しかし、新しく作成されたオブジェクトのスコープは名前空間内にあります...そのため、それが正しい方法であるかどうか疑問がありました。
namespace abc{
class bag{
public:
bag()
{
cout<<"\nconstructor called";
}
~bag()
{
cout<<"\ndestructor called";
}
bag(bag &c)
{
cout<<"\ncopy constructor called";
}
bag call()
{
bag f;
return f;
}
};
2 番目の質問は、コピー コンストラクターに関するものです。次main()
の式を使用してコピーコンストラクターを呼び出そうとしていますが、コンパイラーがエラーをスローしています...どうすればこれを達成できますか
abc::bag b;
abc::bag c=b.call(); // trying to call copy constructor ,but getting compile time error