摘要:
最近看了下C++虚函数的相关知识,现在想自己编写代码运行一下,可能在面试的时候有点小帮助,都是些基础的不能再基础的了如下是基类与派生类的定义代码,接下来的执行结果的分析,都是以此为依据: 1 class Base { 2 public: 3 Base() {cout f(); //这里先在子类中找,如果有,调用子类的;如果没有,到父类中找;如果都没有找到virtua1函数f,则报错4 b->g(); //调用父类,因为子类并没有覆盖父类的虚函数5 b->h(); //同上6 delete b;7 b = NULL;8 retur... 阅读全文
摘要:
前言C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不做过多的阐述。大家可以看看相关的C++的书籍。在这篇文章中,我只想从虚函数的实现机制上面为大家一个清晰的剖析。当然,相同的文章在网上也出现过一些了,但我总感觉这些文章不是很容易阅读,大段大段的代码,没有图片, 阅读全文
摘要:
c++类的构造函数详解一、 构造函数是干什么的classCounter{public: // 类Counter的构造函数// 特点:以类名作为函数名,无返回类型 Counter() { m_value = 0; }private: // 数据成员 intm_value;} 该类对象被创建时,编译系统对象分配内存空间,并自动调用该构造函数->由构造函数完成成员的初始化工作eg:Counter c1; 编译系统为对象c1的每个数据成员(m_value)分配内存空间,并调用构造函数Counter( )自动地初始化对象c1的m_value值设置为0故:构造函数的作用:初始化对象的数据成员。二.. 阅读全文