次の 3 つのクラス定義があります。
class String
{
public:
String() {}
String(const char *) {}
};
class ClassA
{
public:
ClassA(const String &) {}
};
class ClassB
{
public:
ClassB(const ClassA &, const String & = String()) {}
void method() {}
};
のインスタンスを作成するとしますClassB
。
String name("test");
ClassA item(ClassB(name));
これは機能しません:
エラー: 'item' のメンバー 'method' の要求。これはクラスではありません タイプ 'ClassA ()(ClassB)'
このエラーはどういう意味ですか? ClassA ()(ClassB)
そして、コンパイラが参照し続けるこの奇妙な型は何ですか?