Я честно смущен. Я должен спросить, но я застрял на этом.Не могу получить композицию правильно
#include <iostream>
using namespace std;
class Obj
{
};
class Test
{
private:
Obj a;
public:
Test(Obj _a)
: a(_a)
{}
};
int main() {
Obj ob();
Test t(ob);
return 0;
}
Я получаю эту ошибку:
t.cpp:24: error: no matching function for call to ‘Test::Test(Obj (&)())’
t.cpp:15: note: candidates are: Test::Test(Obj)
t.cpp:10: note: Test::Test(const Test&)
Я не понимаю. Тот же фрагмент отлично работает со встроенными типами (целые числа и прочее).
Это "самый раздражающий синтаксического анализа". –
Возможный дубликат [Most vexing parse (C++)] (http://stackoverflow.com/questions/5926103/most-vexing-parsec) –
Не нужно смущаться, они называют это «досадой» по какой-то причине. –