C++纯虚函数(抽象类) 纯虚函数类似JAVA中的抽象类 如果父类有纯虚函数,子类继承时,如果不去实现这个函数,则不能被实例化 没有实现纯虚函数: 实现纯虚函数 ...
分类:
编程语言 时间:
2019-11-16 23:44:33
阅读次数:
159
RTTI(Run Time Type Identification)运行时类型识别,类似JAVA中的多态 父类接口类: 子类实现 结果: 类型转换: 如果子类必须含有虚函数,否则不是多态,其次,必须事引用和指针才能类型转换 如下: ...
分类:
编程语言 时间:
2019-11-16 23:31:27
阅读次数:
98
如果不虚继承的话,父类对象每一次被调用都会被初始化 不加virtual关键词 输出结果 ...
分类:
编程语言 时间:
2019-11-16 23:28:54
阅读次数:
93
如果一个类里面只有纯虚函数,没有其他成员函数和数据成员,就是接口类。 接口类: 实现类: Teacher 继承自接口类Person,并实现Person纯虚函数 cpp //.h 定义 class Student : public Teacher { public: Student(string co ...
分类:
编程语言 时间:
2019-11-16 23:18:14
阅读次数:
89
多态的基本概念: 多态是C++面向对象三大特性之一 多态分为两类 1、静态多态: 函数重载 和 运算符重载属于静态多态,复用函数名 ,那么这个我们之前都有用到过 2、动态多态: 派生类和虚函数实现运行时多态 静态多态和动态多态区别: 1、静态多态的函数地址早绑定 编译阶段确定函数地址 2、动态多态的 ...
分类:
其他好文 时间:
2019-11-15 23:58:34
阅读次数:
139
基类指针/引用调用虚成员函数时才会发生动态绑定,即只有在程序执行阶段才知道调用哪个版本的虚函数。此时调用对象为该指针/引用的动态类型对象。(静态类型就是定义时的类型,此处也就是基类的类型,一般静态和动态类型时相同的,只有在这种情况下两者可能不同。) OOP(面向对象编程)的核心思想“多态性”的根本就 ...
分类:
其他好文 时间:
2019-11-14 22:02:47
阅读次数:
98
前言最近在复习一些 C++基础知识,写了一些 C++的代码,当我在类中定义了虚函数并且直接在类定义内部实现这些虚函数时,编译器就会报警告:’xxx‘ has no out-of-line virtual method definitions;its vtable will be emitted in ...
分类:
编程语言 时间:
2019-11-02 14:15:53
阅读次数:
176
引子在现实编码过程中,曾经遇到过这样的问题“warning:’Base’ has no out-of-line method definition; its vtable will be emitted in every translation unit”。由于对这个warning感兴趣,于是搜集了 ...
分类:
编程语言 时间:
2019-11-02 14:08:43
阅读次数:
85
1、定义上不同。重载是指不同的函数使用相同的函数名,但是函数的参数个数或类型不同, 调用的时候根据函数的参数来区别不同的函数。重写是指在派生类中重新对基类中的虚函数重新实现, 即函数名和参数都一样,只是函数的实现体不一样。 2、规则不同。重载必须具有不同的参数列表,可以有不同的访问修饰符,可以抛出不 ...
分类:
其他好文 时间:
2019-11-01 13:07:33
阅读次数:
65
一、 代码: 1 #include<stdio.h> 2 #include<string.h> 3 #include<algorithm> 4 #include<iostream> 5 using namespace std; 6 class A 7 { 8 public: 9 int a,b; 1 ...
分类:
编程语言 时间:
2019-11-01 09:27:22
阅读次数:
68