変換コンストラクターを理解しようとしています。次のコードを使用しています
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 (コピー コンストラクター) を呼び出すことを想定していたというステートメントに混乱していますが、それは行 B のみを呼び出しcls e = 15
ましたcls e = cls(15)
。だから私は試してみcls e = cls(15)
ましたが、これもB行のみを提供します。
cls e = cls(15)
//変換コンストラクターの後にコピー コンストラクターが続くことを期待していましたが、明らかに間違っていました。何が起こっているのかについての説明をいただければ幸いです