博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++ 类与对象
阅读量:6716 次
发布时间:2019-06-25

本文共 2306 字,大约阅读时间需要 7 分钟。

1、类的定义

class 类名{    private:            成员表1;    public:            成员表2;    protected:            成员表3;};//类体,以分号结束

  private&protected 成员不能从外部进行访问

  public 成员可以从外部进行访问

例如:

class dragon{				int grade;//等级		int exp;//经验值		int power;//武力值		int fight;//战斗次数		int win;//战胜次数		long id;//系统编号,身份序列号      public:		void set_id();//赋予身份序列号		void train();//训练,增加经验值、武力值		void upgrade();//宠物升级		void pk(dragon &ob);//一对一战斗};

  如果在类体起始点无访问说明符,系统默认为私有(private)

2、成员函数的定义

  通常在类的定义中,成员函数仅作说明,函数定义通常在类的说明之后进行,格式如下:

返回值类型 类名::函数名(参数表){        ...... //函数体}
void dragon::upgrade() { 	if (win>=10) 	 {grade++;	win=win-10;}}

3、类成员的访问

  • 类外访问

    类外函数-->类中public属性的成员

    使用 “对象名.成员名” 方式访问

  • 类中成员互访

    成员函数-->任意类中成员

    直接使用 “成员名”

4、构造函数

  构造函数的作用:创建对象  初始化对象

  对象的赋值:为对象的数据成员赋值

  对象的初始化:在对象创建时为对象的数据成员赋值

class dragon{	char sex;//性别	int grade;//等级	int exp;//经验值	int power;//武力值	int fight;//战斗次数	int win;//战胜次数	long id;//身份号    public:	dragon( char Sex, int Grade, int Exp, int Power,int Fight, int Win ); //构造函数声明        dragon(); //默认构造函数声明	…………};

  构造函数是公有成员函数;

  构造函数函数名与类名相同;

  构造函数无函数返回类型说明。

//构造函数定义dragon::dragon(char Sex, int Grade, int Exp, int Power, int Fight, int Win){  	sex=Sex; 	grade=Grade;	exp=Exp; 	power=Power;	fight=Fight;	win=Win;	set_id();	cout<<"构造函数被调用"<

5、析构函数

class dragon{	…….    public:	dragon( char Sex=‘f’, int Grade=1, int Exp=0, 			int Power=0, int Fight=0, int Win=0 );	~dragon( ) ; };//析构函数定义dragon::~dragon( ){  		cout<<“析构函数被调用"<
  • 如果类说明中没有给出构造函数,则C++编译器自动给出一个默认的构造函数:类名( ){ }
  • 若没有给出析构函数,也会给出一个默认的析构函数:~类名( ){ }

 6、类的聚合

  用其他类的对象作为类的数据成员。

class Point{     public:       Point(int xx=0,int yy=0){X=xx; Y=yy;}       Point(Point &p) { X=p.X;  Y=p.Y;} //复制构造函数        ~Point( ){ }       int GetX() {return X;} //取对象的X坐标       int GetY() {return Y;} //取对象的Y坐标   private:       int  X,Y;  //点的坐标};class Line	//Line类的声明{    private:	//私有数据成员	Point p1,p2;  //Point类的对象p1,p2	int style; //线型    public:		//使用坐标的构造函数	Line (int x1=0, int y1=0,int x2=0,int y2=0, int Ls=0); 	//使用点对象的构造函数		Line (Point a, Point b, int Ls=0); 		…………};

含对象成员的构造函数的定义

类的对象成员必须使用初始化列表初始化

类名::类名(对象成员所需的形参,普通数据形参):对象1(参数),对象2(参数),...

{ 本类初始化 }

Line::Line(Point a, Point b, int Ls):p1(a),p2(b){ style=Ls; } Line::Line( int x1,int y1, int x2,int y2, int Ls):p1(x1,y1),p2(x2,y2){ style=Ls; }

 

转载于:https://www.cnblogs.com/P3nguin/p/7501007.html

你可能感兴趣的文章
nginx安装与配置
查看>>
Android 命令设置获取、IP地址、网关、dns
查看>>
查找当前薪水(to_date='9999-01-01')排名第二多的员工编号emp_no、薪水salary、last_name以及first_name,不准使用order by...
查看>>
[SQL in Azure] Windows Azure Virtual Machine Readiness and Capacity Assessment
查看>>
关于CCR测评器的自定义校验器(Special Judge)
查看>>
java设计模式之 装饰器模式
查看>>
利息力(force of interest)
查看>>
Oracle 角色及其权限
查看>>
NiftyDialogEffects:集成了多种动画效果的Dialog控件
查看>>
《世界是数字的》读后感
查看>>
AD软件原理图封装过程(即由原理图转换到PCB)
查看>>
cocos2d-x lua table与json的转换
查看>>
mysql的基本原理
查看>>
《面向对象分析与设计》——抽象
查看>>
linux学习记录-------jdk安装配置
查看>>
查看dll依赖项
查看>>
koa和egg项目webpack热更新实现
查看>>
ansible普通用户su切换问题
查看>>
2017.10.1
查看>>
洛谷——P1187 3D模型
查看>>