一時オブジェクト(たとえば、std :: string)をオブジェクトのコンストラクターに渡したいのですが:
class MyClass{
public:
MyClass(string a):
a(a)
{
}
string a;
};
int main(int argc, char *argv[]){
MyClass a(string());
cout<<a.a<<endl;
return 0;
}
しかし、私はこのエラーを受け取ります:
main.cpp: In function ‘int main(int, char**)’:
main.cpp:28:11: error: request for member ‘a’ in ‘a’, which is of non-class type ‘MyClass(std::string (*)()) {aka MyClass(std::basic_string<char> (*)())}’
一時オブジェクトのコンストラクター(たとえば、string( ""))に何かを渡せば、すべてが正常に機能します。なんで?