`
sipgreen
  • 浏览: 26653 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

面向对象编程<继承覆盖>之——C++

 
阅读更多
C++面向对象继承,虚方法,类似于指针.....

 

//Father.h
class Father  
{
public:
	Father();
	virtual ~Father();


	int getInt();
	int setInt();


	virtual int vsetInt();

};
//Son.h
class Son : public Father  
{
public:
	Son();
	virtual ~Son();


	int getInt();
	int setInt();
	
	virtual int vsetInt();

};
 

 

 

//Father.cpp
Father::Father()
{

}

Father::~Father()
{

}

int Father::getInt()
{
	printf("Father:   getInt()\n");
	return 1;
}

int Father::setInt()
{
	printf("Father:   setInt()\n");
	return 2;
}

int Father::vsetInt()
{
	printf("Father:   vsetInt()\n");
	return 11;
}



//Son.cpp
Son::Son()
{

}

Son::~Son()
{

}

int Son::getInt()
{
	printf("Son:   getInt()\n");
	return 3;
}
int Son::setInt()
{
	printf("Son:   setInt()\n");
	return 4;
}

int Son::vsetInt()
{
	printf("Son:   vsetInt()\n");
	return 5;
}

 

 

测试程序:

 

 

int main(int argc, char* argv[])
{

	printf("Derived: Father* fa=new Son();-----------------------------------\n");
	Father* fa=new Son();
	printf("%d\n",fa->getInt());
	printf("%d\n",fa->setInt());
	printf("--------Virtual Method---------------------------\n");
	printf("%d\n",fa->vsetInt());
	//printf("%d\n",fa->Son::vsetInt());  //Son' : is not a member of 'Father'

	
	printf("\n\n");
	printf("Derived: Son* fa2=new Son();-----------------------------------\n");
	Son* fa2=new Son();
	printf("%d\n",fa2->getInt());
	printf("%d\n",fa2->setInt());
	printf("---------Virtual Method--------------------------\n");
	printf("%d\n",fa2->vsetInt());
	printf("%d\n",fa2->Father::vsetInt());

printf("\n\n");  
printf("Derived: Son* fa3=new Father();-----------------------------------\n");  
Son* fa3=(Son*)new Father();  
printf("%d\n",fa3->getInt());  
printf("%d\n",fa3->setInt());  
printf("---------Virtual Method--------------------------\n");  
printf("%d\n",fa3->vsetInt());  
printf("%d\n",fa3->Father::vsetInt());  
	return 0;
}

 

 

输出结果:

Derived: Father* fa=new Son();-----------------------------------
Father:   getInt()
1
Father:   setInt()
2
--------Virtual Method---------------------------
Son:   vsetInt()
5


Derived: Son* fa2=new Son();-----------------------------------
Son:   getInt()
3
Son:   setInt()
4
---------Virtual Method--------------------------
Son:   vsetInt()
5
Father:   vsetInt()
11

Derived: Son* fa3=new Father();-----------------------------------
Son:   getInt()
3
Son:   setInt()
4
---------Virtual Method--------------------------
Father:   vsetInt()
11
Father:   vsetInt()
11


分享到:
评论

相关推荐

    软件工程思想

    &lt;br&gt;&lt;br&gt;第六章 C++ 面向对象程序设计&lt;br&gt;&lt;br&gt;6.1 C++面向对象程序设计的重要概念&lt;br&gt;&lt;br&gt;6.1.1 类与对象&lt;br&gt;&lt;br&gt;6.1.2 继承与组合&lt;br&gt;&lt;br&gt;6.1.3 虚函数与多态&lt;br&gt;&lt;br&gt;6.2 良好的编程风格&lt;br&gt;&lt;br&gt;6.2.1 命名约定&lt;br&gt;...

    Visual C++ 面向对象编程教程——王育坚

    《Visual C++ 面向对象编程教程——王育坚》是一本专为学习MFC(Microsoft Foundation Classes)和面向对象编程技术而设计的教学资料。该教程以幻灯片的形式呈现,结合实例与详细的讲解,使得学习过程更为直观且易于...

    面向对象的程序设计语言——C++课件 第二版(陈志泊 )

    C++第二版的课件由陈志泊教授编著,深入浅出地介绍了面向对象编程的基本概念和实践。 首先,课程内容涵盖结构化程序设计与面向对象程序设计的对比。结构化程序设计(Structured Programming - SP)采用自顶向下、...

    <<易学C++>> Word版

    C++是由Bjarne Stroustrup于1979年在C语言的基础上发展起来的,它引入了类、对象、继承、多态等面向对象编程的概念,同时也保留了C语言的低级特性,使得程序员可以进行高效的系统编程。C++的一个重要特点是它的模板...

    面向对象编程C++和Java比较教程 中英文完整版 pdf

    面向对象编程(Object-Oriented Programming,简称OOP)是一种重要的编程范式,它通过将数据和操作数据的方法封装在对象中,实现了程序设计的模块化和抽象化。本教程对比了两种广泛应用的面向对象语言——C++和Java...

    面向对象的程序设计语言——C++

    首先,C++中的“类”(Class)是面向对象编程的基础,它是一种用户自定义的数据类型,用于描述一类对象的属性(成员变量)和行为(成员函数)。通过定义类,我们可以抽象出现实世界中的实体,使代码更具有结构性和...

    C++面向对象编程的一些总结

    C++的面向对象编程主要包括三个核心概念:封装、继承和多态。 1. 封装:封装是面向对象编程的基础,它允许我们将数据和操作数据的方法捆绑在一起,形成一个独立的单元——类。在C++中,通过访问控制修饰符(如...

    面向对象的程序设计语言——C++

    面向对象的程序设计语言C++是一种强大的、高效的编程语言,广泛应用于系统软件、应用软件、游戏开发、设备驱动等各个领域。C++是C语言的扩展,它引入了类、对象、封装、继承、多态等核心概念,使得程序设计更加模块...

    C++面向对象程序设计教程——课件PPT

    C++是一种强大的编程语言,以其面向对象特性而闻名,它结合了过程化编程和面向对象编程的优势。在“C++面向对象程序设计教程——课件PPT”中,我们可以深入学习这一主题,由陈维兴和林小茶编著,清华大学出版社出版...

    《C++面向对象程序设计》第2版编程题答案

    这本书深入浅出地讲解了C++语言的核心概念,特别是面向对象编程(OOP)的思想和技术。第二版在第一版的基础上进行了修订和完善,更适应现代编程环境的需求,包含了更多的实践案例和编程练习。 在学习这门课程的过程...

    《面向对象的程序设计语言——c++》习题答案

    2. **选择题**测试封装、继承、多态等面向对象特性。 3. **改错题**指出对类和对象理解的常见错误,如访问权限、构造函数的定义等。 4. **读程序写结果**涉及对象创建、成员函数调用、数据成员访问等。 以上是C++...

    Visual C++实用编程技术——从C++、面向对象到窗口程序设计.rar

    总之,《Visual C++实用编程技术——从C++、面向对象到窗口程序设计》这本教程将引导读者从C++语言基础出发,深入到面向对象编程,最后通过MFC和Windows API实现窗口程序的设计。通过学习,开发者不仅能够掌握C++...

    数据结构与程序设计—— C++描述(高等教育出版社)

    在C++描述部分,作者将讲解如何使用C++的类和对象来实现这些数据结构,强调封装、继承和多态等面向对象编程的概念。同时,书中还会涵盖模板、异常处理、STL(标准模板库)等C++高级特性,使读者能够编写出更加高效...

    VC学习教程<易学C++>

    - **C++**:基于C语言扩展而来,增加了面向对象编程特性,支持类、继承、多态等概念。 - **Visual C++**:微软提供的集成开发环境(IDE),支持C/C++编程,提供了丰富的工具和服务。 **1.6 学习程序设计的方法和必要...

    01第1章 初识C++——C++程序设计入门

    此外,C++引入了面向对象编程的概念,包括类(class)、对象(object)、封装、继承和多态。类是定义对象模板,对象是类的实例。例如,一个简单的类定义: ```cpp class Student { public: std::string name; int ...

    C++面向对象实验代码实验2

    面向对象编程(Object-Oriented Programming, OOP)以其封装、继承和多态三大特性,使得代码更加模块化,易于理解和维护。 1. 封装:封装是面向对象编程的基础,它将数据和操作这些数据的方法捆绑在一起,形成一个...

    (麻省理工)C语言内存管理和C++面向对象编程

    本课程通过实际案例深入浅出地讲解了C++面向对象编程的核心概念——继承与多态性,并结合C语言的内存管理技术,为初学者提供了一个全面的学习框架。通过学习这些内容,开发者能够更好地理解如何设计可扩展、可维护的...

Global site tag (gtag.js) - Google Analytics