为什么我不能访问该课程的成员? [英] Why can't I access a member of this class?
本文介绍了为什么我不能访问该课程的成员?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下三个类定义:
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 $ c $的实例c>:
String name("test");
ClassA item(ClassB(name));
这不起作用:
error: request for member 'method' in 'item', which is of non-class
type 'ClassA ()(ClassB)'
此错误是什么意思?编译器不断引用的奇怪类型 ClassA()(ClassB)
是什么?
What does this error mean? And what is this strange type ClassA ()(ClassB)
the compiler keeps referring to?
推荐答案
这称为最令人头疼的解析问题。
ClassA item(ClassB(name));
应该是:
ClassB b(name);
ClassA item(b);
或:
ClassA item( (ClassB(name)) );
也可以看看:大多数令人烦恼的解析:为什么不使用a(());工作吗?
这篇关于为什么我不能访问该课程的成员?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文