抽象类 £神魔★判官ぃ 2022-06-08 00:49 171阅读 0赞 **1.纯虚函数** 在基类中仅仅给出声明,不对虚函数实现定义,而是在派生类中实现。这个虚函数称为纯虚函数。普通函数如果仅仅给出它的声明而没有实现它的函数体,这是编译不过的。纯虚函数没有函数体。 纯虚函数需要在声明之后加个=0; class <基类名> \{ virtual <类型><函数名>(<参数表>)=0; ...... \}; **2.抽象类** 含有纯虚函数的类被称为抽象类。抽象类只能作为派生类的基类,不能定义对象,但可以定义指针。在派生类实现该纯虚函数后,定义抽象类对象的指针,并指向或引用子类对象。 1)在定义纯虚函数时,不能定义虚函数的实现部分; 2)在没有重新定义这种纯虚函数之前,是不能调用这种函数的。 抽象类的唯一用途是为派生类提供基类,纯虚函数的作用是作为派生类中的成员函数的基础,并实现动态多态性。继承于抽象类的派生类如果不能实现基类中所有的纯虚函数,那么这个派生类也就成了抽象类。因为它继承了基类的抽象函数,只要含有纯虚函数的类就是抽象类。纯虚函数已经在抽象类中定义了这个方法的声明,其它类中只能按照这个接口去实现。 抽象类实例: #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <cstring> using namespace std; class abstractFather{ /*定义抽象类*/ public: virtual int GetValue() = 0;/*纯虚函数*/ }; class abstractChild1 :public abstractFather { public: abstractChild1(int a, int b, int c) { this->m_a = a; this->m_b = b; this->m_c = c; } int GetValue() { return (m_a*m_b*m_c); } private: int m_a; int m_b; int m_c; }; class abstractChild2 :public abstractFather { public: abstractChild2(int a, int b) { this->m_a = a; this->m_b = b; } int GetValue() { return (m_a*m_b*2); } private: int m_a; int m_b; }; class abstractChild3 :public abstractFather { public: abstractChild3(int a) { this->m_a = a; } int GetValue() { return (m_a*m_a+2*m_a); } private: int m_a; int m_b; }; int stage(abstractFather* oop) { return (oop->GetValue()); } int main() { abstractChild1 oop1(1, 2, 3); cout << "oop1: " << stage(&oop1) << endl; abstractChild2 oop2(4, 5); cout << "oop2: " << stage(&oop2) << endl; abstractChild3 oop3(10); cout << "oop3: " << stage(&oop3) << endl; system("pause"); return 0; }
相关 抽象类 抽象类的概述 包含抽象方法的类, 属于类的一种,属于特殊的类, java中被关键字abstract修饰的类就是抽象类 抽象方法的概念 只有方法声明,没有方法体的方 末蓝、/ 2022年12月28日 14:24/ 0 赞/ 20 阅读
相关 抽象类 抽象方法是只声明而未实现的方法,所有的抽象方法必须用abstract修饰,包含抽象方法的类必须也用abstract修饰。 有抽象方法的类一定是抽象类,抽象类不一定有 快来打我*/ 2022年06月08日 07:40/ 0 赞/ 148 阅读
相关 抽象类 1.纯虚函数 在基类中仅仅给出声明,不对虚函数实现定义,而是在派生类中实现。这个虚函数称为纯虚函数。普通函数如果仅仅给出它的声明而没有实现它的函数体,这是编译不过的。纯虚 £神魔★判官ぃ/ 2022年06月08日 00:49/ 0 赞/ 172 阅读
相关 抽象类 抽象类 1、抽象类的概念: 包含一个抽象的方法的类就是抽象类 2、抽象方法: 声明而未被实现的方法,抽象方法必须使用abstract关键字声明。 曾经终败给现在/ 2022年06月07日 03:17/ 0 赞/ 176 阅读
相关 抽象类 抽象类 抽象方法 抽象类 public abstract class className\{\} 1. 抽象类不能被实例化。只有抽象类的非抽象子类可以创 Myth丶恋晨/ 2022年06月06日 12:14/ 0 赞/ 97 阅读
相关 抽象类 1、什么是抽象类? 带有抽象方法但没有方法体、并且在类名前添加abstract关键字的类是抽象类。 2、为什么用抽象类、什么时候用抽象类? 设计一个类作为一些类的 Love The Way You Lie/ 2022年05月05日 09:40/ 0 赞/ 266 阅读
相关 抽象类 抽象类 抽象类的引入 抽象类的引入 空实现: 就是给出了代码块,但是没有实现 注意: 空实现也是实现了 抽象方法的实现没有意义,但是存在有意义? 存在有 客官°小女子只卖身不卖艺/ 2022年03月25日 12:20/ 0 赞/ 242 阅读
相关 抽象类 1. abstract定义抽象类和抽象方法 抽象类不能被实例化,即无法使用new来调用抽象类构造器创建抽象类实例。但是抽象类有构造器,主要是给其子类调用的 约定不等于承诺〃/ 2022年02月19日 10:41/ 0 赞/ 212 阅读
相关 抽象类 基本概念 -------------------- 所有的对象都是通过类来描述的,但并不是所有的类都是来描述对象的。如果一个类没有足够的信息来描述一个具体的对象,而需 Dear 丶/ 2021年09月22日 22:56/ 0 赞/ 341 阅读
相关 抽象类 Abstract(抽象)可以修饰类、方法 进行先上抽取,只能抽取功能定义,而不抽取功能主体,具体的实现由子类覆盖完成。 抽象相当于一些概念性的东西,而子类相当于功能性的实现 r囧r小猫/ 2021年09月10日 23:14/ 0 赞/ 324 阅读
还没有评论,来说两句吧...