【发布时间】:2023-06-21 22:27:01
【问题描述】:
我有一个带有私有字段的简单类和带有公共成员函数的构造函数,用于打印来自其他类的所有对象名称。
这是头文件中的代码:
class Class8 : public Class6, public Class7
{
private:
std::string object_name;
public:
Class8(std::string object_name_);
void print_all();
};
头文件中的Class6代码:
class Class6 : public Class2, public Class3
{
private:
std::string object_name;
public:
Class6(std::string object_name_);
void print_name(); //prints name of this classs object (values of "object_name" private field)
};
如您所见,Class8 扩展了公共类 6 和 7。
例如,我创建指向 Class6 的指针,然后创建指向 Class8 对象。然后我使用 & 运算符将 Class8 对象的地址分配给指向 Class6 的指针,然后尝试使用包含 Class8 对象地址的指针调用 print_all()(Class8 的方法),如下所示:
Class6* pointer_to_six = new Class6("Class_x");
Class8 object_8("Object_name");
pointer_to_six = &object_8;
pointer_to_six->print_all();
但是编译器说 Class6' 没有名为'print_all'的成员。我做错了什么?