从命名空间返回对象是否安全?在下面的代码call()
按值返回包对象。但是新创建的对象的范围在命名空间内......所以有一个疑问,如果它是正确的方式来做到这一点。从命名空间返回对象是否安全?
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;
}
};
我的第二个问题是关于复制构造函数。 在main()
我试图通过使用下面的表达式调用拷贝构造函数,但是编译器抛出错误......我如何才能做到这一点
abc::bag b;
abc::bag c=b.call(); // trying to call copy constructor ,but getting compile time error
什么是编译时错误? –
你不必怀疑,您有任何疑问,请参阅http://www.cs.uic.edu/bin/view/Jakob/IndianEnglish –