- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C++面向对象编程核心技术.doc
C++面向对象编程核心技术
用户可以创建自己的类,即用户自己定义的数据类型,组成这种类型的,不仅可以是数据(称为类的数据成员),而且可以是对数据进行操作的方法(称为类的函数成员)。属于这种类型的具体数据称为这个类的对象。
类的定义形式
类与其它任何数据类型一样,变量在使用之前必须进行定义。定义的一般形式为:
class Cname
{
private:
//私有数据与函数
public:
//公有数据类型
};//注意一定要有“;”
Class是类定义的关键字,其中在一对花括号内的部分叫类体;闭花括号后的“;”表示类定义结束。类内定义的数据和函数分别称为这个类的数据成员与函数成员,类的成员的访问权限,通过关键字来定义,private表示私有,public表示公有。
注意事项
1) 在类说明中的关键字private\ public出现的顺序可以任意,C++编译器每遇到有类的访问权限关键字,就将其后的成员的访问权限确定为该关键字作规定的权限。
2) 数据成员可以具有任何数据类型。由于类是一种数据类型,因而不能在类中说明中对数据成员进行初始化。
3) 在类说明中仅对函数成员进行说明,在程序中还必须定义该函数。定义成员函数的一般形式为:
返回类型 类名::成员函数名(参数说明)
{函数体}
其中,“::”为作用域运算符,“类名::”表示其后的函数是属于该类的。
类的使用
定义类的对象
使用类的过程,就是在程序中说明该类的变量的过程,即创建对象的过程。创建对象就是为对象分配内存。
对象值的构造
为使用对象,要构建对象的值,可使用下列任一形式:
类名 对象名 = 类名(参数表); // 用于调用带参数构造函数
类名 对象名·成员名 = 初值;
类名 对象名(参数表); // 用于调用带参数构造函数
类名 对象名 = 类名(); // 用于调用无参数构造函数
对象的使用
定义类的对象之后,就可以访问对象的成员函数。一般形式为:
对象名·成员函数名();
对象名·成员函数名(参数表)
其中“·”为取成员运算符,表示访问一个对象的成员。由于代码是被一个类的所有对象共享的,而数据则是属于各个对象的,因此,当一个对象的成员函数被调用时,可通过类找到成员函数的定义代码,同时通过对象确定需要访问的数据。
注意事项
同类对象之间可以整体赋值;
对象用作函数的参数时,属于赋值调用,函数可以返回一个对象;
可在定义类的同时定义对象,可用初始化列表对对象初始化。
应用示例
输入一个圆的半径,计算圆的面积
#include iostream.h
class CircleAreaOOP // 定义类,类名为CircleAreaOOP
{
private: // 私有数据成员
double radius;
double area;
public:
void setRadius(); // 公有函数成员
void getArea();
void printArea();
};
void CircleAreaOOP::setRadius() // 函数成员的定义
{
coutInput radius of a circle:;
cinradius;
}
void CircleAreaOOP::getArea()
{
area = 3.14159 * radius *radius;
}
void CircleAreaOOP::printArea()
{
cout\nArea of a circle is areaendlendl;
}
void main()
{
CircleAreaOOP circle; // 创建对象circle
circle.setRadius(); // 使用对象调用函数成员
circle.getArea();
circle.printArea();
}
输入两个整数,然后进行交换(不使用中间变量)
#include iostream.h
class SwapTwoNumbers
{
private:
int *a,*b;
public:
void setValue(int,int);
void SwapNumbers();
};
void SwapTwoNumbers::setValue(int *x, int *y)
{
a = new int;
b = new int;
*a = *x;
*b = *y;
}
void SwapTwoNumbers::SwapNumbers()
{
coutBefore swap:a =*a\t=*bendl;
*a^=*b;
*b^=*a;
*a^=*b;
coutAfter swap:a =*a\t=*be
您可能关注的文档
最近下载
- 《基于PLC的四层电梯控制》-毕业论文.doc VIP
- 2.关于干部人事档案审核工作的问答(组工通讯〔总2764号〕).docx VIP
- 高速铁路无缝线路技术—无缝线路基本知识.pptx
- Q╱SY 05010-2016油气管道安全目视化管理规范.doc VIP
- 解码国家安全知到智慧树期末考试答案题库2025年国际关系学院.docx VIP
- 面料阻燃等级检测报告.docx VIP
- 重庆市鲁能巴蜀中学校2024-2025学年高一上学期期中考试数学试卷.pdf
- DB13_T 3035-2023 建筑消防设施维护保养技术规范.docx VIP
- 急性上消化道出血诊治流程专家共识(共33张PPT)【33页】.pptx VIP
- 林下中药材的种植技术.pptx
原创力文档


文档评论(0)