Инициализация объекта класса по присваиванию - PullRequest
1 голос
/ 06 июля 2019

Сегодня я проводил некоторый эксперимент с конструкторами:

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

Затем этот тип инициализации

cls x=5;

дает вывод о том, что был вызван конструктор с параметром.

Мой вопрос: а что, если у меня есть конструктор с двумя или более параметрами?Могу ли я использовать инициализацию по присваиванию?

1 Ответ

1 голос
/ 06 июля 2019

вы можете сделать то же самое с большим количеством параметров, таких как:

#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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...