【发布时间】:2020-10-29 19:13:44
【问题描述】:
我有一个这样的 Student 类的构造函数:
Student(ISubject subject, IStudy study);
ISubject 和 IStudy 是抽象类。然后我创建了从抽象类继承的类。 (例如数学:ISubject 和微积分:IStudy)
当我想将派生类的对象传递给构造函数时,我得到一个错误。我该如何解决?
提前致谢。
【问题讨论】:
-
要获得多态行为,您需要pass by reference。如果你不这样做,you get object slicing.
-
当你声明构造函数时你应该已经得到一个错误,因为当
ISubect是抽象的你不能有那个类型的实例。无论如何,请包括minimal reproducible example 和编译器错误 -
当我想将派生类的对象传递给构造函数时,出现错误。我该如何解决这个问题? -- 如果 C++ 书籍或资料没有说明如何做到这一点的示例,请获取新的书籍或资料。传递对象以调用多态行为是 C++ 的基础。
标签: c++ inheritance constructor strategy-pattern