抽象类和多态使用数组 我只是读迈尔斯“更有效的C++ 35新方法”——第33条,他建议在那里。 总是从抽象基类继承,而不是从具体基类继承
他声称的其中一个原因(我不能完全理解)是,通过从抽象类继承,以多态方式处理数组(书中的第3项)不是问题 有人能告诉我这是怎么回事吗 此外,我还想知道,不让客户机实例化另一个派生自的类是否真的总是一件好事?(梅耶斯在书中举例说明了赋值运算符的问题) 按要求编写代码示例: 类BST{…} 类BlanacedBST::public BST{..} 无效打印BST数组(ostream&s,常量BST数组[],整数) { 对于(int i=0;i抽象类和多态使用数组 我只是读迈尔斯“更有效的C++ 35新方法”——第33条,他建议在那里。 总是从抽象基类继承,而不是从具体基类继承,c++,class,polymorphism,abstract-class,C++,Class,Polymorphism,Abstract Class,他声称的其中一个原因(我不能完全理解)是,通过从抽象类继承,以多态方式处理数组(书中的第3项)不是问题 有人能告诉我这是怎么回事吗 此外,我还想知道,不让客户机实例化另一个派生自的类是否真的总是一件好事?(梅耶斯在书中举例说明了赋值运算符的问题) 按要求编写代码示例: 类BST{…} 类BlanacedBST::public BST{..} 无效打印BST数组(ostream&s,常量BST数组[],整数) { 对于(int i=0;i
因此,被设计用来引用的类应该禁用赋值,并且应该认真考虑禁用复制构造,并要求人们为此目的使用“复制这个虚拟函数”。注意java类一般没有赋值操作符或标准复制构造函数。
设计为按值使用的类通常不应具有虚拟函数,尽管将它们作为继承层次结构的一部分可能非常有用。但它们仍然可能相当复杂,因为它们可以包含对设计为按引用使用的类的对象的引用如果您需要将by引用类视为由值使用,则应使用句柄/主体设计模式或智能指针。STL容器都是为由值对象使用而设计的,因此这是一个相当常见的问题。Meyers没有说您可以毫无问题地创建数组;他说这样会更加困难你应该尝试创建它。一旦你尝试初始化它,编译器就会抱怨,因为如果基类是抽象的,你就不能创建它的对象。当有人建议你做任何事情时,你可以安全地忽略其余部分。是的,忽略其余部分总是安全的;-)我没有这本书,所以我无法解决你的问题关于这方面的具体问题,尽管我熟悉他关于只使用纯抽象基类的建议。也许你可以粘贴他使用的代码示例?我也不知道如何粘贴。不管怎样,这个问题都会出现。但问题不是试图创建基调用,而是使用基调用作为函数参数,然后将派生类作为参数结束…所以我仍然看不到如何使用is作为抽象帮助。尽管如此,还是可以填充指向基类的指针数组。