Я пытаюсь передать временный объект другому конструктору объектов, чтобы второй объект стал владельцем сгенерированного объекта. Мой код примерно такой
class A {
};
class B {
A a;
public:
B(A && _a) : a(_a) {}
void test(){ }
};
int main(int argc, const char *argv[])
{
B b(A());
b.test();
return 0;
}
но я получаю эту ошибку, которую не могу понять
$ g++ -std=c++0x main.cpp
main.cpp: In function 'int main(int, const char**)':
main.cpp:15:7: error: request for member 'test' in 'b', which is of non-class type 'B(A (*)())'
Возможно, это просто глупая синтаксическая ошибка, но если это не так, как бы вы определили такой конструктор для получения права собственности на какой-то созданный ресурс?
Спасибо