- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
g7x[计算机]C面向对象编程核心技术
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
您可能关注的文档
- aph[工学]惯性矩转轴公式的几何法研究.pdf
- as3[理学]Lecture7-Analytical2011.ppt
- AUTOCAD课程大纲.ppt
- b0j[法律资料]Bwxrsfi广州医学院第一附属医院控烟工作制度.doc
- at89c51单片机_交通灯控制系统包括源码and仿真图.doc
- b2b[文学作品]采访稿2宁夏农业.doc
- b1g[高等教育]焊接成形技术-焊接基本概念与方法.ppt
- b3f[教育学]谈中职教育转变中市场营销专业的课程体系设计改革.doc
- b4u[中学教育]新目标七年级下册期末复习提纲.doc
- b9n[法律资料]汽车理赔市场问题仍不少:维修800元 只赔400元.doc
- gb5[工学]Excel在误差分析中的应用.ppt
- ge2[调研报告]中国聚苯乙烯产业研究报告.pdf
- gf7[医药]合理应用中成药之浅见.doc
- ggj[专业课]华中科技大学2012年考研辅导招生简章.doc
- gn0[建筑]关于2011年万州区初中毕业生学业暨高中招生考试考务工作操作指令.doc
- go5[高等教育]山大2010年授予博士、硕士学位和培养研究生的学科专业目录.doc
- go8[法律资料]浅谈现行劳动争议处理体制的反思与前瞻.doc
- gnt[建筑]04J006外墙保温隔热建筑构造图集一.pdf
- grr[高考数学]2011新增法规经典法则.doc
- gsh[健康]0A_资料_大全_HLN-盘点就业面最宽的13大专业组图_资料_大全.doc
文档评论(0)