通过赋值初始化 class 对象

Initialization of a class object by assignment

我今天用构造函数做了一些实验:

class cls
{
    int a;
public:
    cls(){cout<<"Default constructor called\n";}
    cls(int b){a=b;cout<<"Constructor with parameter called";}
}

然后就是这种初始化

cls x=5;

产生一个输出,表明已调用带参数的构造函数。

我的问题 i:如果我有一个带有两个或更多参数的构造函数怎么办?我还能使用赋值初始化吗?

您可以像这样使用更多参数执行相同操作:

#include <iostream>

class cls
{
    int a;
    double b;
public:
    cls(){std::cout<<"Default constructor called\n";}
    cls(int a): a(a){std::cout<<"Constructor with parameter called";}
    cls(int a, double b) : a(a), b(b){std::cout<<"Constructor with two parameter called";}
};

int main()
{
    cls t = {1, 1.5};
    return 0;
}