为什么我只声明了一个构造函数后,C++ 类却显示了 2 个构造函数?

问题描述 投票:0回答:1

我有以下 C++ 类:

class MyClass
{
private:
    PCWSTR _windowName{};
    PCWSTR _windowTitle{};

public:
    MyClass(PCWSTR wndName, PCWSTR wndTitle)
    {
        this->_windowName = wndName;
        this->_windowTitle = wndTitle;
    }
};

当我尝试创建此类类型的变量时,它显示 2 个构造函数,其中一个不是我声明的。

我声明的构造函数:

还有这个?

第二个构造函数是什么?

c++ constructor
1个回答
0
投票

每个没有用户声明的复制构造函数的类都隐式声明了一个。您看到的是复制构造函数。它还将被隐式定义为单独复制每个成员。

但是 IDE 有点不一致。还应该有一个隐式声明的 move 构造函数,其签名为

MyClass(MyClass&&)
,因此该类总共有三个构造函数。

© www.soinside.com 2019 - 2024. All rights reserved.