类与对象---day2
来源:互联网 发布:通达信软件的使用方法 编辑:程序博客网 时间:2024/05/20 06:25
1、会抽象类,并实例对象
1.1类的定义
类是一种复杂的数据类型,它是将不同类型的数据和与这些数据相关的运算封装在一起的集合体。
类将一些数据与及数据相关的函数封装在一起,使类中的数据得到很好的保护,在大型程序中不会随意修改。
class 类名
{
public: //公有的
数据成员;
成员函数;
protected: //受保护的
数据成员;
成员函数;
private: //私有的
数据成员;
成员函数;
}
1)private限定的成员成为私有成员,对私有的成员限定在该类的内部使用,即是只允许该类的成员函数使用私有的成员数据,对私有的成员函数,只能被该类内的成员函数调用;类就相当于私有成员的用作域了。
2)public限定的成员成为公有成员,公有成员的数据或函数不受类的限制,可以在类内或类外自由使用,对类而言是透明的。
3)protected所限定的成员成为保护成员,只允许在类内与及该类的派生类中使用保护的数据或函数。即保护成员的作用域是该类与该类的派生类。
每一个限制词(private等)在类中可使用多次。一旦使用了限制词,该限制词一值有效,直到下一个限制词开始为止。
注意:如果为加说明,类中成员默认的访问权限是private,私有的。
class space
{
//数据成员 未加说明,默认是私有的
int xres;
int yres;
int zres;
//成员函数
public:
int getx(int a,int b)
{x=a;y=b;}
void setx(int x);
void printf(void)
{
cout<<xres<<"\t"<<yres<<endl;
}
........
};
在类外不能直接使用xres或者yres。必须通过getx()给xres和yres赋值,通过printf()输出xres和yres
成员函数与成员数据的定义不分先后,可以先说明函数原型,再在类体外定义函数体。
class space
{
//数据成员 未加说明,默认是私有的
int xres;
int yres;
int zres;
//成员函数
public:
int getx(int a,int b);
void setx(int x);
void printf(void);
........
};
void space::getx(int a,int b)
{
x=a;
y=b;
}
void space::printf(void)
{
cout<<xres<<"\t"<<yres<<endl;
}
在类体外定义成员函数的格式:
<type> <class_name>::<fun_name>(<参数表>)
{
//函数体
......
}
在定义一个类时,要注意如下几点:
1、类具有封装性,并且类只是定义了一种结构(样板),所以类中的任何成员数据均不能使用关键字extern,auto或register限定其存储类型。
2、在定义类时,只是定义了一种导出的数据类型,并不为类分配存储空间,所以,在定义类中的数据成员时,不能对其初始化。如:
class Test { int x=5,y=6; //是不允许的
extern float x; //是不允许的
}
在C++语言中,结构体类型只是类的一个特例。结构体类型与类的唯一的区别在于:在类中,其成员的缺省的存取权限是私有的;而在结构体类型中,其成员的缺省的存取权限是公有的
类大多数放在头文件里。
1)类的成员函数定义方法有两种
- 类与对象---day2
- day2对象
- 广播与服务day2笔记
- kotlin学习day2:类
- javaSE-DAY2-String类
- Day2
- day2
- DAY2
- day2
- DAY2
- day2
- day2
- day2
- day2
- day2
- day2
- day2
- day2:
- Count 1 in Binary 解题报告
- 做打印机绑定服务问题
- 一份其实很短的 LaTeX 入门文档
- git 出现502错误后用depth一步一步来
- Oracle存储过程学习
- 类与对象---day2
- mysql数据库锁死,报错 mysql add/update error:org.springframework.dao.CannotAcquireLockException
- Traveling
- 博客初衷
- CSS font-family 各名称一览表
- 你应该知道的那些超时设置或默认参数
- VS2010 安装boost库
- SIFT算法详解
- mysql 按照年龄段分组查询