`

c++简单的虚函数测试

阅读更多

#include <iostream>
using namespace std;

class A
{
public:
	A()
	{
	}

	virtual ~A()
	{
	};

public:
	virtual void fun()
	{
		cout << "A::fun()" << endl;
	}

	virtual void fun2()
	{
		cout << "A::fun2()" << endl;
	}

	void test()
	{
		cout << "A::test()" << endl;
		test2();
		fun2();
	}

	void test2()
	{
		cout << "A::test2()" << endl;
	}

};

class B:public A
{
public:
	B()
	{
	}

	virtual ~B()
	{
	}

public:
	virtual void fun()
	{
		cout << "B::fun()" << endl;
		test();
	}

	virtual void fun2()
	{
		cout << "B::fun2()" << endl;
	}

	void test1()
	{
		cout << "B::test1()" << endl;
		test();
	}

	void test2()
	{
		cout << "B::test2()" << endl;
	}
};

int main()
{
	cout << "========== use pointer =============" << endl;
	A* pa = new B();
	pa->fun();
	delete pa;
	cout << endl << endl;

	cout << "========== use object =============" << endl;
	B b;
	b.test1();

	return 0;
}
 

 

执行结果

 

========== use pointer =============

B::fun()

A::test()

A::test2()

B::fun2()

 

 

========== use object =============

B::test1()

A::test()

A::test2()

B::fun2()

分享到:
评论

相关推荐

    C++虚函数表测试源码

    C++虚函数表的测试代码,用于学习C++虚函数的调用关系。

    C++中虚函数的实现机制

    介绍了C++编程语言中的虚函数及其在进行面向对象程序设计中重要性,并且详细阐述了它在编译器底层虚函数的实现机制.它通过一个vptr和vtable在运行时进行动态绑定,从而能够根据对象类型的不同调用不同的 虚函数;并...

    多态与虚函数计算面积

    一个小测试,可以认识到虚函数与多态性的认识

    浅谈C++ 虚函数

    本文将简单探究一下 c++ 中的虚函数实现机制。本文主要基于 vs2013 生成的 32 位代码进行研究,相信其它编译器(比如,gcc)的实现大同小异。 先从对象大小开始 假设我们有如下代码,假设 int 占 4 字节,指针占 4 ...

    C++编写计算三角形、正方形和圆形面积程序

    抽象出一个基类Base,在其中说明一个虚函数,用来求面积,并利用但界面和多定义版本设计求各个图形面积的方法。 了解虚函数对多态性的支持。 掌握虚函数和纯虚函数的概念。 理解静态多态性和动态多态性,学习使用虚...

    c++模拟测试题

    类有两个特殊的成员函数,构造函数和虚函数。N 8、类中提供了三种访问控制权:公有、私有、保护三种类型。Y 9、所谓继承就是利用已有的数据类型定义出新的数据类型。Y 10、静态成员函数没有 this 指针。Y 11、A 为类...

    C++实验1-13,包含完整程序、注释、报告

    本资源为C++实验1-13,包含完整程序、注释、报告非常适合初学者学习、研究,具体如下: 实验1-熟悉Visual C++编程环境 实验2-利用函数编程 实验3-指针与引用的编程 实验4-类与对象的编程 实验5-构造函数与析构函数的...

    C++测试题库1

    一般将类的析构函数设置为纯虚函数即可将这个类定义为抽象类,抽象类中至少有一个纯虚函数(虚函数是指一个类中你希望重写的成员函数,当你用一个基类指针或引用指向一个继承类对象的时候,你调用一个虚函数,实际...

    C++课程设计

    基础程序设计题:使用虚函数编写程序求球体和圆柱体的表面积和体积,由于球体和圆柱体都可以看做由圆继承而来,所以可以定义圆类circle为基类。在circle类中定义一个数据成员radius和两个虚函数area()和volume()。从...

    C++程序设计代码

    2.定义一个车(Vehicle)类,有run,stop等成员函数,由此派生出自行车(bicycle)类、汽车(car)类,由bicycle类和car类派生出摩托车(motocar)类,它们都包含run,stop等成员函数,编写相应的虚函数并测试。...

    【全新正版】现代C++程序设计(原书第2版)

    8.5.3 虚函数的作用 8.6 总结 8.7 练习 复习题 附录A 学习使用Visual C++2005Express Edition 附录B C++关键字表 附录C C++运算符 附录D ASCII码 附录E 位、字节、内存和十六进制表示 附录F 文件输入/输出 附录G ...

    用c++ 定义一个车(Vehicle)基类,有Run,Stop等成员函数,由此派生出自行车(bicycle)类,汽车(motorcar)

    用c++ 定义一个车(Vehicle)基类,有Run,Stop等成员函数,由此派生出自行车(bicycle)类,汽车(motorcar)类,从bicycle和 motorcar派生出摩托车(motorcycle)类,他们都有Run,Stop等成员函数。编写完整并用主函数测试...

    C++ Primer第四版【中文高清扫描版】.pdf

    17.1.6 函数测试块与构造函数 586 17.1.7 异常类层次 587 17.1.8 自动资源释放 589 17.1.9 auto_ptr类 591 17.1.10 异常说明 595 17.1.11 函数指针的异常说明 598 17.2 命名空间 599 17.2.1 命名空间的定义 599 ...

    Absolute C++中文版(原书第2版)-完美的C++教程,文档中还包含英文版

    15.2.3 C++如何实现虚函数 457 第16章 模板 461 16.1 函数模板 461 16.2 类模板 471 16.2.1 类模板的语法 471 16.2.2 C++中的模板类vector和 basic_string 478 16.3 模板和继承 478 第17章 链式数据结构 487...

    新手学习C++入门资料

    标准C++中的字符串类取代了C标准C函数库头文件中的字符数组处理函数。 C++中用来做控制态输入输出的iostream类库替代了标准C中的stdio函数库。 C++中的try/catch/throw异常处理机制取代了标准C中的setjmp()和...

    题目:显示宠物信息(Dev C++运行可通过但是会警告)(纯虚函数、父类指针、动态多态性、继承)

    【题目】显示宠物信息。具体要求如下: (1)定义抽象宠物类Pet: 数据成员(protected): char name[20];...(4)编写主函数对所定义的类进行测试,要求每个成员函数均要测试到,测试数据自定。

    Visual C++ 2005入门经典.part08.rar (整理并添加所有书签)

    9.6.3 使用引用处理虚函数 9.6.4 纯虚函数 9.6.5 抽象类 9.6.6 间接基类 9.6.7 虚析构函数 9.7 类类型之间的强制转换 9.8 嵌套类 9.9 C++/CLI编程 9.9.1 C++/CLI类的继承 9.9.2 接口类 9.9.3 定义接口类 9.9.4 类和...

    Visual C++ 2005入门经典.part04.rar (整理并添加所有书签)

    9.6.3 使用引用处理虚函数 9.6.4 纯虚函数 9.6.5 抽象类 9.6.6 间接基类 9.6.7 虚析构函数 9.7 类类型之间的强制转换 9.8 嵌套类 9.9 C++/CLI编程 9.9.1 C++/CLI类的继承 9.9.2 接口类 9.9.3 定义接口类 9.9.4 类和...

Global site tag (gtag.js) - Google Analytics