鉴于以下代码,Foo有复制构造函数吗?将Foo与STL容器一起使用是否安全?
class Foo
{
public:
Foo() {}
template <typename T>
Foo(const T&) {}
};
Run Code Online (Sandbox Code Playgroud)
Dav*_*eas 10
该标准明确指出,复制构造函数是一个非模板化的构造函数,它接受对同一类型的可能const-volatile对象的引用.在上面的代码中,您有一个转换但不是复制构造函数(即它将用于除复制之外的所有内容,其中将使用隐式声明的构造函数).
是否
Foo有一个拷贝构造函数?
是的,隐式声明/定义的复制构造函数.
使用
Foo标准库容器是否安全?
使用它的当前定义Foo是,但在一般情况下,它取决于成员Foo具有什么以及隐式定义的复制构造函数是否正确地管理它们.
| 归档时间: |
|
| 查看次数: |
1411 次 |
| 最近记录: |