【发布时间】:2011-02-13 20:13:30
【问题描述】:
我有两个类 A 和 B。控件位于类 A 的成员函数之一中。成员函数计算结果,我现在想将此值发送给 B 类的成员函数之一,我试过了以下方式,但它仍然有效
int memberFunctionOfA() { ... //结果存储在一些临时值中,比如 temp B::memberFunctionOfB(temp); // 我尝试的方式 }编译器报告错误。我也试过了
乙对象; obj.memberFunctionOfB(temp);两者都给了我无法调用 memberFunctionOfB 的错误。谁能告诉我我错过了什么
编辑
B 类不是从 A 继承的。它们都是独立的。两个成员函数都是公共的和非静态的
【问题讨论】:
-
告诉我们编译器显示的确切错误。
-
@CHID 我不明白 memberFunctionOfB 是静态函数吗?
-
B 类的声明在这里会有很大帮助。如果 A 从 B 继承(或相反),则 A 类的声明也会有所帮助。首先猜测,我会说
memberFunctionOfB是私有的/受保护的,但是如果没有看到代码就很难确定。 -
@CHID:该特定错误意味着您的 B 类没有默认构造函数。如果你想创建一个 B,你需要提供参数——比如
B obj(42, "These are sample args");而不仅仅是B obj;。查看 B 类的代码,找出它的构造函数期望什么。 -
编译器说你的 B 类没有默认构造函数,这是在堆栈上创建对象所必需的,就像你在这里做的那样:
B obj;