3

次の 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)そして、コンパイラが参照し続けるこの奇妙な型は何ですか?

4

1 に答える 1