Я студент, и когда я работал над классами, я заметил, что в C++, когда мы не определяем конструктор, компилятор автоматически рассматривает конструктор по умолчанию для класса, но когда мы определяем конструктор, конструктор по умолчанию больше не определяется. А когда у нас нет конструктора по умолчанию, мы не можем создать объект без аргументов.
Код: Выделить всё
#include
class test
{
private:
int a;
int b;
public:
test(int x , int y)
{
a = x;
b = y;
}
};
int main()
{
test obj;
return 0;
}
Когда я пытаюсь скомпилировать, выдает ошибку, и эта проблема верна в соответствии с предположением.
Я понял, что если мы используем круглые скобки, когда создав объект, эта проблема будет решена, но я не знаю, в чем научная причина?
Код: Выделить всё
#include
class test
{
private:
int a;
int b;
public:
test(int x , int y)
{
a = x;
b = y;
}
};
int main()
{
test obj();
return 0;
}
Почему эта программа работает правильно и мы не получаем ошибку, если мы еще не отправили никаких аргументов конструктору?
Подробнее здесь:
https://stackoverflow.com/questions/787 ... n-we-put-a