1.基类指针虽然获取派生类对象地址,却只能访问派生类从基类继承的成员 1 #include 2 using namespace std; 3 4 //通过基类指针只能访问从基类继承的成员 5 class A 6 { 7 public: 8 A(char x) 9 {10 ...
分类:
编程语言 时间:
2015-03-13 23:45:23
阅读次数:
229
#include
#include
#include
using namespace std;
class AbstractFile{
protected:
string name;
public:
AbstractFile(string n){
name=n;
}
virtual void Display()=0; // 纯虚函数
...
分类:
编程语言 时间:
2015-03-12 19:22:21
阅读次数:
183
一直搞不懂c++多态性是何意,今天偶遇一篇讲解,觉得不错,拿来研究研究。 多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。多态(polymorphisn),字面意思多种形状。 C++多态性是通过虚函数(virtual)来实现的,虚函...
分类:
编程语言 时间:
2015-03-12 16:55:24
阅读次数:
156
我们知道,一个C++类如果带有virtual关键字的函数,那么,它就是一个虚类。虚类都有虚函数表。这个虚函数表真的存在吗?能摸得着、看得见吗?
的确是可以的。下面我们就展示一下如何看到C++类的虚函数表。...
分类:
编程语言 时间:
2015-03-11 10:52:27
阅读次数:
203
前言? C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛...
分类:
编程语言 时间:
2015-03-10 19:55:01
阅读次数:
195
注:本文内容来源于zhice163博文,感谢作者的整理。1.为什么基类的析构函数是虚函数? 在实现多态时,当用基类操作派生类,在析构时防止只析构基类而不析构派生类的状况发生。 下面转自网络:源地址http://blog.sina.com.cn/s/blog_7c773cc50100y9hz.ht.....
分类:
编程语言 时间:
2015-03-10 16:53:30
阅读次数:
179
第15章 面向对象程序设计
1. 构造基类和派生类。
其中A类是基类,B类是派生类。派生类的构造函数必须重新写过,不能继承。(因为毕竟两个类的类名都不一样,不可能构造函数继承)只继承其他的成员函数和成员变量。
派生类可以覆盖基类的虚函数,但是也可以选择不覆盖(即直接使用父类的函数版本)比例A类的print_1()虚函数就没有被覆盖。
基类的静态成员:如果基类有一个静态成员...
分类:
编程语言 时间:
2015-03-10 10:28:45
阅读次数:
146
1 class faux 2 { 3 public: 4 template 5 virtual void do() // member function templates cannot be virtual 6 {} 7 }; 8 ...
分类:
其他好文 时间:
2015-03-07 19:58:27
阅读次数:
164
1. 用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。2. 存在虚函数的类都有一个一维的虚函数表叫做虚表。类的对象有一个指向虚表开始的虚指针。虚表是和类对应的,虚表指针是和对象对应的。3. 多态性是一个接口多种实现,是面向对象的核心。分为类的多态性和函数的多态性。4. 多态用虚...
分类:
编程语言 时间:
2015-03-07 15:28:02
阅读次数:
183
近日,在项目的一个类中如果碰上想要将子类强制转换成父类,然后再调用其父类版本的virtual虚函数。就会出现gcc编译错误提示:error: ld returned 1 exit statusgcc提示原因:在link过程中,发现了无法找到的reference symbol, 该reference ...
分类:
编程语言 时间:
2015-03-06 16:30:24
阅读次数:
183