- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2.1C语言概述
2.1.1 C++的面向对象特征
概括地讲,面向对象系统包含3个要素:对象、类和继承。能支持所有上述3个方面的语言,被称为面向对象语言。从本质上讲,C++并不是一种完美的面向对象设计语言,而是C语言的一个超集,与C兼容也是其成功的一个重要方面,因而C++也是一种混合语言,既支持传统的面向过程程序设计,又支持面向对象程序设计,灵活性大。它继承了传统C语言的优点,克服了其不足;又在面向对象特征及非面向对象特征这两个方面增加了新功能,使得它既适用于结构化程序设计,又能满足面向对象程序设计的要求,符合广大程序设计逐步更新其程序设计观念和方法的要求,因而很快流行起来。
C++的面向对象特征和风格:
(1)C++借助于把一个数据结构及其操作函数组合在一起,提供了类/对象的构造和封装机制。
定义一个类的一般形式是:
class calss_name
{
private: //私有成员部分(类外部的代码不能直接访问的部分)
data and methods //可包括成员变量和成员函数
protected: //保护的成员部分
data and methods
public: //公用成员部分
data and methods //公有部分定义的变量和函数
}object_name_list;
在缺省关键词的情况下,类中所有项均为私有的。C++中的struct 和 union 也和 class一样能够定义一个类,所不同的是定义成员时,在缺省关键词的情况下所有成员均为公有的。
(2)提供对象的创建和删除,特别是使用了构造函数和析构函数来管理对象。
构造函数是一个特殊的成员函数,其函数命名与类名同名,它指定了一个类的实例对象的建立和初始化过程。
析构函数是用于释放内存和删除由构造函数创建的对象。
例如:
#include iostream.h //不同于C的stdio.h
class myclass
{
int a;
public:
myclass();
void show();
};
myclass::myclass()
{
cout”in constructor\n”;
a=10; //a的值由myclass()自动初始化
} //注意,构造函数是没有返回值的
.
.
.
main()
{
myclass ob ; //变量说明语句也是动作语句,调用了构造函数
ob.show();
return 0;
}
(3)能够进行对象间的消息传递、操作调用,除了使用操作符、指针、表达式外,还有指向自身的this等。
(4)支持继承机制,特别是提供了在一种通用的功能上进行具体化定义的方法,使用基类和派生类,形成了十分方便的继承机制。
在C++中,一个派生类可以有多个基类,支持多重继承。说明一个类继承另一个类的形式为:
class 派生类名:[public/private/protected] 基类名
{ //冒号是类属范围算符(双目)
.
.
.
}
例如:
class base
{
int x;
public:
void setx(int n){x=n;}
void showx(){coutx”\n”;}
};
class derived:public base
{
int y;
public:
void sety(int n){y=n;}
void showy(){couty”\n”;}
};
main()
{
derived ob;
ob.setx(10);
ob.sety(20);
ob.showx();
ob.showy();
return 0;
}
(5)具有灵活的处理动态连接功能,其方法是使用虚函数(在函数名前用关键字virtual进行标识),它只能在最高层的基类中定义。
C++中函数名和运算符重载也是支持多态性的好方法。例如,下面重载构造函数提供了便利的初始化对象。
#include iostream.h
class myclass
{
int x;
public: //两种构造函数重载,使对象oba初始化,而obb没有
myclass(){x=0;} //no initializer
mycla
您可能关注的文档
- 三和房屋租赁合同.doc
- 8.2积的乘方课件2.ppt
- 刑法诉讼房产经纪人与中介公司合同书.doc
- 教你写简历ResumeandCoverLetters.ppt
- 2010年春季学期小学数学六年级单元检测(一.doc
- 中程在线企业内训需求申请表.doc
- 文件跟进管理规定QW-PZ-006-008.doc
- 迈好青春第一步宋申申.doc
- 高三物理高考考点及例题讲析5-6追及相遇问题.doc
- 2010年越秀区九年级英语读写竞赛试题(e.doc
- 2025年休闲食品健康化转型下的市场拓展策略与渠道创新报告[001].docx
- 农村电商服务站品牌建设:2025年运营模式创新与品牌传播报告.docx
- 2025年互联网金融平台合规整改与金融科技监管的合规监督与可持续发展策略.docx
- 2025年短视频平台内容监管与平台社会责任关系研究报告.docx
- 农产品溯源体系在农产品质量安全监管中的信用体系构建与实施策略研究.docx
- 2025年工业互联网平台数据备份与恢复策略创新方案探讨.docx
- 2025年线上法律咨询服务平台法律咨询行业竞争策略研究.docx
- 农业产业集群农产品流通体系构建与发展机制报告.docx
- 智能制造领航者:2025年3D打印技术在规模生产中的应用效果分析报告[001].docx
- 农村金融服务创新与农村金融消费者权益保护法规实施效果分析报告.docx
文档评论(0)