c++ 是这个拷贝构造函数吗?

标签 c++

class A {};
class B { public: B (A a) {} };

A a;
B b=a;

我是从 http://www.cplusplus.com/doc/tutorial/typecasting/ 读到的.它说这是一个隐式类型转换。从A级到B级。 我想问一下,这也是拷贝构造函数的例子吗? 谢谢。

最佳答案

不,它不是复制构造函数。复制构造函数将一种类型的一个对象复制到另一个相同类型的对象中:

B::B(const B& b)
{
    // ...
}

作为旁注,如果您需要复制构造函数,那么您可以 also need一个析构函数和一个赋值运算符,可能还有一个交换函数。

B::B(A) 是一个转换 函数。它是一个构造函数,允许您将 A 类型的对象转换为 B 类型的对象。

void f(const B& obj);

void g()
{
    A obja;
    B objb = obja;
    f(obja);
}

关于c++ 是这个拷贝构造函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5320545/

相关文章:

c++ - 我可以让 C++ 编译器决定是按值传递还是按引用传递?

c++ - 未命名函数参数用法

c++ - 枚举窗口?

c++ - DialogBox 消息是否发送到自定义消息循环?

c++ - 无法打开文件 'SOIL.libkernel32.lib'

c++ - C++中的引用代表对象吗?

c++ - GDB 断点不命中模板函数

c++ - allocator_traits::construct() 与 allocator_traits::allocate()

c++ - 我可以让 std::string 使用更少的内存吗?

c++ - 为什么可变参数函数不适用于模板