C++里比C里多出了继承,多态,虚函数是啥回事?求通俗解答…………谢谢!
既然是发展,那就要多了些东西以适应更加复杂的编程要求咯。
就好比你最早买的U盘是usb1.0的,后来有了usb2.0,现在是usb3.0,显然高版本的要比低版本的有更多的功能。同样的道理C++就比C语言多了一些功能(严格地说叫语言特性)。多出来的这部分内容有2大块,一个叫面向对象,也就是你说的封装、继承、多态;另外一部分叫泛型编程。
C++首先比C多出了类这个概念,你要先明白类是怎么回事。
接下来说继承,你老爸留下了一大笔遗产,你可以继承并发扬光大,取其精华,去其糟粕。
同理,别人写了一个C++的类A,你拿过来继承一下,得到属于你的类B,你的类B就有了别人的那部分功能,同时你再添的东西,于是类B把类A发扬光大了。
举个现实中的例子,比如我现在用的搜狗输入法具有换皮肤的功能,那么这个功能就是一个类A,过了一段时间,新来了一个哥们,他想开发一个定时自动换皮肤的功能,他不需要把搜狗输入法全部重新写一遍,他只要把原来的功能A继承过来,在里面添加一个自动换皮肤的函数,于是就得到了新的类B。现在好了,原本要重新写的程序,现在只要添点东西就OK,这不是节省了很多编程人员的精力了吗。所以说继承能够让你很快地用上别人的东西,同时添加自己的东西。
建议你看看 Head First 系列图书,里面有很多浅显易懂的例子,你就会对面向对象编程有很好的了解了。当然,这一系列的书都价格不菲。
Head First深入浅出设计模式
http://book.douban.com/subject/1488876/
Head First深入浅出面向对象分析与设计(中文版)
http://book.douban.com/subject/3530721/
这是因为两种语言的思想不同,c语言是面向过程的编程思想。c++是面向对象的编程语言。思想不同,故方法不同。
这种问题在教材上就有
这是因为两种语言的思想不同,c语言是面向过程的编程思想。c++是面向对象的编程语言。思想不同,故方法不同。
这种问题在教材上就有
C++的继承与多态:为什么需要虚函数以~
虚函数可以让成员函数操作一般化,用基类的指针指向不同的派生类的对象时,
基类指针调用其虚成员函数,则会调用其真正指向对象的成员函数,
而不是基类中定义的成员函数(只要派生类改写了该成员函数)。
若不是虚函数,则不管基类指针指向的哪个派生类对象,调用时都
会调用基类中定义的那个函数。
#include
using namespace std;
class Person
{
public:
virtual f()
{
cout<<"Person::f()"<<endl;
}
};
class IAction
{
public:
virtual g()
{
cout<<"IAction::g()"<<endl;
}
};
class Women:public Person,public IAction
{
public:
f()
{
cout<<"Women::f()"<<endl;
}
g()
{
cout<<"Women::g()"<<endl;
}
};
int main()
{
IAction *newaction=new Women();
newaction->g();
return 0;
}
不会出现你说的情况,前后是没关系的。
如上面,是完全可以运行的,不会出现错误。
仍有问题hi我,或留言。
网友点评:
岳沸C和C++具体区别? -
13177468430 …… 》 1、关键字不同的区别 蓝色标注为C语言关键字,C++继承了C语言的所有关键字,以下红色标注为C++中含有但C语言没有的关键字,根据c++98中提出C++包含63个关键字. 2、源文件不同的区别 C语言文件后缀为.c,c++原文件名后缀为.cpp. 如果在创建源文件时什么都不给,默认是.cpp.3、返回值不同的区别 C语言中,如果一个函数没有指定返回值类型,默认为int类型,并返回一个随机数,一般为0XCCCCCCCC. 在C++中,如果函数没有返回值则必须指定为void型,否则编译不能通过. 参考资料来源:百度百科—c语言 参考资料来源:百度百科—C++
岳沸c语言和c++有什么联系?
13177468430 …… 》 C语言和C++的区别:C语言是一种面向过程设计的编程语言,他主要在于算法和数据的够成.所谓算法是指解决方法的步骤.C语言中没有封装、继承和多态,更没有类.C++是一种面向对象程序设计的编程语言.他中可以用封装、继承和多态,当然也可以拥有类.C++是程序员和软件开发者的好工具. C语言和C++的联系:C语言是C++的子集,而C++则是C语言的超集.也就是说,C语言就象C++的子女,而C++则象C语言的父母.C语言的程序可以在C++的上面用.C++完全包括C语言的语法,如果你学习好了C语言,学习C++那就是很容易的事了.
岳沸c和c++之间有什么最显著的不同
13177468430 …… 》 C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制),而对于C++,首要考虑的是如何构造一个对象模型,让这个模型...
岳沸高级语言C++与C相比优势在哪?
13177468430 …… 》 c++在c的基础上增加了类的概念,是面向对象的开发语言,比起c语言的语言来说更加的简练,同时继承了c语言的一些语法特征,很具有随意性,由于暂时没有用c++开发过项目,故不知道开发项目的能力怎么样,但应该比c要强一些.
岳沸C语言与C++和JAVE有什么区别? -
13177468430 …… 》 Java程序中的每个变量要么是基本数据类型(boolean, char, byte, short, int, long, float, double),要么是对对象的引用 C++有许多种基本类型,额外还有struct, union, enum, 数组和指针,C++指针可以指向对象,也可以不指向对象 Java没有枚...