Я новичок и имею основополагающее сомнение относительно взаимосвязи между созданием объекта и конструкторами.Нет ошибки для инициализации ссылочной переменной класса
Програм 1
#include<iostream>
using namespace std;
class xxx{
private: int x;
public: xxx(){cout<<"constructer is called"<<endl;}
};
int main(int argc, char *argv[])
{
xxx x1; //Constructor is called
return 0;
}
output- конструктор вызывается
Програм 2
#include<iostream>
using namespace std;
class xxx{
private: int x;
public: xxx(){cout<<"constructer is called"<<endl;}
};
int main(int argc, char *argv[])
{
xxx x1(); //Constructor xxx() is not called.
return 0;
}
output- пустым Любая информация очень helpfule
Поскольку это не упоминалось, это называется [Most Vexing Parse] (http://en.wikipedia.org/wiki/Most_vexing_parse). –
@CaptainObvlious - это не самый неприятный синтаксический разбор. Это просто объявление функции. –