`
sipgreen
  • 浏览: 25465 次
  • 性别: 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;...

    面向对象程序设计课程设计——学生成绩管理系统

    正确理解掌握C++面向对象程序设计的基本特性:类、对象、继承与派生、多态、虚函数、模板、流类库等。遵循软件过程的各个环节进行系统分析、设计、实现、集成、测试,并相应给出软件规格说明书等制品。了解当前常用...

    C++课程大作业-采用面向对象的编程思想+STL 容器实现学生管理系统C++源码(含详细注释+项目说明)

    基于C++的学生管理系统,采用了面向对象的编程思想,加入STL 容器。 实现学生信息管理系统 信息存储:存储在当前目录下的StuData目录下,如果该目录不存在则创建。 学生类 —— 名字、学号、职务(后续增加联系方式...

    C++面向对象程序设计基础教程

    Visual C++是一个强大的编程工具,它以C++为语言基础。...&lt;br&gt; 本教程没有对C++语言做全面的介绍,而是针对有一定C语言基础的读者,着重讲解C++面向对象的三大特性——数据封装、继承性、多态性。&lt;br&gt;

    【Python入门自学笔记专辑】——面向对象编程

    【Python入门自学笔记专辑】——面向对象编程 前言 ​ 面相对象是Python的重要特性,继承了C++的类风格,在Python中的一切数据类型都是面向对象的。本章主要介绍Python的面向对象编程。 面向对象: ​ 什么是OOP...

    跟我学Java面向对象程序设计技术及应用——Java中的面向对象技术(第1部分).pdf

    2) 面向对象编程的四个基本机制是什么? 3) 你知道 java 语言在面向对象编程方面有何独特的特点吗? 1.1.1 面向对象技术基础 1、面向对象(OO)的基本概念 (1)面向对象的基本思想 面向对象是一种新兴的程序设计...

    exceptional c++:47个c++工程难题、编程问题和解决方案(英文版)

    条款25:面向对象程序设计 121 4 编译器防火墙和pimpl惯用法 123 条款26:将编译期依赖性降到最低——之一 123 条款27:将编译期依赖性降到最低——之二 127 条款28:将编译期依赖性降到最低——之三 132 条款...

    C++从零开始---入门教程

    C++从零开始(十三)——C++样例二(说明如何设计基于面向对象编程思想的C+ +程序) C++从零开始(十四)——何谓模板(说明模板技术及其存在的理由) C++从零开始(十五)——何谓异常(说明异常技术及其存在的理由...

    C++课程大作业-采用面向对象的编程思想+STL 容器实现学生管理系统C++源码(含详细注释+项目说明).zip

    C++课程大作业-采用面向对象的编程思想+STL 容器实现学生管理系统C++源码(含详细注释+项目说明).zip 基于C++的学生管理系统,采用了面向对象的编程思想,加入STL 容器。 实现学生信息管理系统 信息存储:存储在...

    C++课程作业基于面向对象编程思想和STL容器编写的学生管理系统源码+详细注释+项目说明.zip

    基于C++的学生管理系统,采用了面向对象的编程思想,加入STL 容器。 实现学生信息管理系统 信息存储:存储在当前目录下的StuData目录下,如果该目录不存在则创建。 学生类 —— 名字、学号、职务(后续增加联系...

    c++ 面向对象程序设计教程

    本教程没有对C++语言做全面的介绍,而是针对有一定C语言基础的读者,着重讲解C++面向对象的三大特性——数据封装、继承性、多态性。对于C++语言的基本概念、基本语法和编程方法

    超爽的自学课件(java)

    1) 第1章:对象入门&lt;br&gt;这一章是对面向对象的程序设计(OOP)的一个综述,其中包括对“什么是对象”之类的基本问题的回答,并讲述了接口与实现、抽象与封装、消息与函数、继承与合成以及非常重要的多形性的概念。...

    Visual C++实践与提高-COM和COM+篇『PDF』

    4.3.2 永久对象编程——例程PersistText 4.3.3 永久对象客户编程——例程PersistClient 4.4 命名与绑定技术 4.4.1 COM名字对象与IMoniker 4.4.2 COM系统名字对象 4.4.2.1 文件名字对象(file moniker) 4.4.2.2 复合...

    C++编程思想——很实用的一本书

    本书作者根据自己学习C++的亲身体会及多年教学经验,用简单的例子和简练的叙述讲解C++编程,别具特色。 全书共分十八章,内容涉及对象的演化、数据抽象、隐藏实现、初始化与清除、函数重载与缺省参数、输入输出流...

    易学c++——适合初学者的程序设计教程

    第三篇介绍了面向对象的程序设计,主要有类和对 象,对象生灭,友元,继承等内容.书中常以形象的比喻来解释程序设计中的概念,通俗易懂,令 读者印象深刻,更快地进入C++程序设计的大门.本书的内容涵盖了绝大部分常用的C++...

    现代C++程序设计

    《现代C++程序设计(原书第2版)》图文并茂,通俗易懂,真正做到寓教于乐,是一本难得的C++面向对象设计入门教材。 出版者的话 译者序 前言 第1章 C++概述与软件开发 1.1 什么是C语言和C++ 1.1.1 C和C++历史回顾 1.1.2...

    Java自学之路——超仔细含练习项目及源码 Java知识体系最强总结————含各个阶段的面试题

    Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论允许程序员以优雅的思维方式(思想很重要)进行复杂的编程。 4.Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、动态性...

    《由浅入深学C++-基础、进阶与必做300题》pdf格式 (完整版 带目录

    本书循序渐进地讲述了C++的基础知识、C++程序的组成及其开发过程、C++程序中的数据、表达式和语句、控制程序流程、数组与字符串、指针与引用、使用函数、函数模板、错误和异常处理、宏和预编译、面向对象的开发、...

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

    本书采用生动轻松的语言,深入阐述了C++语言和面向对象程序设计技术。书中设计了超过115个完整的经过教学测试的代码示例,不仅分析了这些示例的代码片段,而且还解释了如何把它们组成一个完整的程序。此外,各章后面...

Global site tag (gtag.js) - Google Analytics