【发布时间】:2013-06-25 17:30:11
【问题描述】:
从命名空间中返回对象是否安全。在下面的代码中,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
【问题讨论】:
-
什么是编译时错误?
-
你没有疑问,你有问题,看cs.uic.edu/bin/view/Jakob/IndianEnglish
标签: c++ object c++11 namespaces