У меня есть два вопроса о следующем коде в C++.Объявление объекта в C++
Что линия
A obj()
вmain()
означает? Это не дает никаких ошибок.И почему следующая строка
obj.fun();
дает следующую информацию?запрос члена 'забавной' в 'OBJ', который имеет тип неклассовую 'A()'
Код:
#include<iostream>
using namespace std;
class A{
public:
A(){
cout<<"Constuctor called\n";
}
~A(){
cout<<"Destuctor called\n";
}
void fun(){
cout<<"YES";
}
};
int main(){
A obj();
obj.fun();
return 0;
}
Это означает, что любой объект как функция бесполезен для всей программы? –
@ user3719247 Нет, это означает, что объявление функции, возвращающей объект типа при намеревании объявить экземпляр объекта, позже приведет к недействительности ссылок на этот экземпляр. – polarysekt