gpt4 book ai didi

c++ - 转换构造函数或复制构造函数

转载 作者:行者123 更新时间:2023-11-30 02:52:57 25 4
gpt4 key购买 nike

<分区>

我正在尝试理解转换构造函数。我正在使用以下代码

class cls 
{
public:
cls()
{
std::cout << "Regular constructor \n"; ---> Line A
}
cls (int a) //Constructing converter
{
std::cout << "Int constructor \n"; ---> Line B
}

cls (cls& d) //Copy constructor
{
std::cout << "Copy constructor \n"; ---> Line C
}
};


int main()
{
cls d;
std::cout << "-----------------------\n";
cls e = 15; //int constructor then copy constructor
return;
}

现在我对 cls e = 15 语句感到困惑 我的理解是该语句假设调用 B 行(Conversion Cont)然后调用 C 行(复制构造函数)但是它只调用了 Line B. 我认为 cls e = 15 等同于 cls e = cls(15)。所以我尝试了 cls e = cls(15),它也只给出了 B 行。如果有人可以解释当我们使用以下内容时会发生什么,我将不胜感激

cls e = cls(15)//我期待一个转换构造函数,然后是复制构造函数,但显然我错了。任何关于正在发生的事情的解释将不胜感激

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com