`

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++多态性与虚函数知识点解析 #### 一、多态性的概念 多态性是面向对象编程的一个核心特性,它允许我们通过基类的接口来操作派生类的对象。这种特性使得代码更加灵活且易于扩展。在C++中,多态性主要通过虚函数...

    有关虚函数的测试用例

    总结来说,这个测试用例主要关注虚函数在C++中的作用,包括多态性、动态绑定、抽象类和接口设计、资源管理以及虚函数表的工作原理。通过一系列的例子和测试,我们可以深入理解虚函数如何提升代码的灵活性和可扩展性...

    c++测试题(含答案)

    C++测试题知识点整理 一、C++程序的基本结构 ...本文总结了C++测试题中的知识点,涵盖了C++程序的基本结构、类的构造函数、操作符重载、虚函数和纯虚函数、STL库、数据类型和extern关键字等方面。

    C++类间函数的相互调用的实例

    3. **多态**:如果可能,利用C++的虚函数和继承实现多态,使得在`CLearnDlg`中可以使用不同的逻辑类而无需修改代码。 4. **依赖注入**:`CLearnDlg`不应直接创建逻辑类的实例,而是通过构造函数或者`SetLog()`这样的...

    网络渗透--《C++中溢出覆盖虚函数指针技术》

    《C++中溢出覆盖虚函数指针技术》是一份深入探讨网络安全中漏洞利用的专题文档,主要关注C++编程语言中的一个特定安全问题:缓冲区溢出导致的虚函数指针覆盖。在这个主题中,我们将详细解析这个问题的原理、危害以及...

    sizeof_virtual.rar_测试函数_虚函数

    总的来说,这个压缩包的测试旨在教育开发者关于C++虚函数的内存使用情况,这对于理解和优化内存敏感的程序是至关重要的。通过这样的实验,我们可以更好地理解多态性带来的好处以及潜在的成本,从而在设计面向对象的...

    虚函数使用练习程序(win32控制台版本)

    在练习程序`testVirtual1`中,可能会包含一系列的测试用例,展示了如何声明和使用虚函数,以及它们在多层继承结构中的行为。这些例子可能涵盖了纯虚函数(只有声明没有实现,强制派生类必须提供自己的实现)、虚析构...

    C++对象模型测试代码

    如果类中有虚函数,那么每个对象都会有一个指向该类虚函数表的指针,这使得子类能够重写基类的函数并保持一致的调用接口。 此外,C++支持构造函数和析构函数,它们在对象生命周期的开始和结束时自动执行,用于初始...

    Linux下开箱即用的C++单元测试demo示例,MOCK虚函数依赖的单元测试

    C/C++单元测试,虚函数依赖函数的gtest+gmock的demo示例,Linux下开箱即用。 整个工程带有完整的依赖,开箱即用。合适尝新的工程师入门体验~ 该资源是博文《虚函数依赖如何单元测试》的随文示例demo,结合博文更易...

    Linux下开箱即用的C++单元测试demo示例,HOOK非虚函数依赖的单元测试

    C/C++单元测试,非虚函数依赖得函数gtest+cppfreestub的demo示例,Linux下开箱即用。 整个工程带有完整的依赖,开箱即用。合适尝新的工程师入门体验~ 该资源是博文《非虚函数依赖如何单元测试》的随文示例demo,结合...

    深入探讨C++父类子类中虚函数的应用

    在C++编程语言中,虚函数(virtual functions)是一个关键特性,它允许我们实现多态性,即在不关心对象具体类型的情况下,调用适当的成员函数。本文将深入探讨C++父类子类中虚函数的应用,以帮助读者更好地理解和...

    C++上机测试题

    多态是指同一种行为在不同的对象上表现出不同的效果,这在C++中主要通过虚函数和抽象类实现。 5. **模板**:模板是C++中实现泛型编程的工具,它可以为不同数据类型创建通用函数或类。模板有函数模板和类模板两种,...

    [C++][Basic] C++父类中实现的纯虚函数体的测试

    在C++编程语言中,纯虚函数(pure virtual function)是一种特殊的虚函数,它被声明为没有函数体,通常在基类中定义,用于强制所有派生类必须重写这个函数。这种机制是C++多态性的重要组成部分,使得我们可以创建...

    基于虚函数的图形面积计算

    在编程领域,虚函数是面向对象编程中的一个重要概念,特别是在C++这种支持多态性的语言中。本项目“基于虚函数的图形面积计算”旨在利用虚函数实现对不同几何图形(如三角形、圆、梯形和矩形)面积的计算,并通过...

    C++ JAVA 软件测试面试题汇总

    描述一下C++中的虚函数和纯虚函数的区别?如何在实际项目中应用软件测试策略? 在“面试题汇总”这个压缩包中,可能包含了上述各种知识点的具体题目和解答,是准备软件测试面试的宝贵资源。通过学习和解答这些题目...

    c++常见笔试题目和软件测试有关题目

    5. **多态**:多态允许不同对象对同一消息做出不同的响应,主要通过虚函数和纯虚函数实现。 6. **模板**:C++的模板功能可以创建泛型代码,提高代码复用,包括函数模板和类模板。 7. **STL(标准模板库)**:包括...

    多态与虚函数计算面积

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

    详解c++种gmock单元测试框架

    如果一个类中的函数没有被声明为虚函数(或纯虚函数),那么在单元测试中就无法使用gMock来模拟该函数的行为。 为了使用gMock,需要进行接口隔离设计。具体来说,应该采用纯虚函数(即接口)来定义类的行为,然后...

Global site tag (gtag.js) - Google Analytics