Использование аргументов по умолчанию в конструкторе [duplicate]

0

Можно ли создать конструктор с аргументами по умолчанию. Что-то вроде этого

Object(int size = 1) {
//SMTH
}

Я пытаюсь сделать это в визуальной студии, но появляется ошибка. Можно ли создать конструктор с аргументами по умолчанию или остается только использовать перегрузку?

РЕДАКТИРОВАТЬ

Возможно, извините за отправку этого вопроса, я новичок в c++. Проблема заключалась в том, что я объявлял аргумент default в исходном файле (cpp), я изменил свой класс, как это, и он отлично работает.

class MyClass
{
public:
    MyClass (int i = 0, std::string s = "");  // constructor declared

private:
    int x;
    int y;
    std::string z;
};

MyClass :: MyClass(int i, std::string s)     // constructor defined
{
    x = 100;
    y = i;
    z = s;
}
Теги:
visual-c++

1 ответ

3
Лучший ответ

Да, возможно иметь конструкторы с аргументами по умолчанию.

Два оговорки в отношении вашего конкретного примера:

  • Убедитесь, что у вас нет конструктора no-args, так как это приведет к двусмысленности.
  • Возможно, вы захотите сделать этот конструктор explicit чтобы он не использовался для неявного преобразования из int в Object.
  • 0
    +1 за указание на конструктор по умолчанию здесь

Ещё вопросы

Сообщество Overcoder
Наверх
Меню