目录
面向对象程序设计技术模仿人类描述事物的逻辑思维来构建程序。C++中,属性用数据的存储结构实现,称为类的数据成员;方法用函数实现,称为成员函数。
一.类的定义
class < 类名> //class是定义类的关键字,类名是用户自定义的标识符
{
public:
公有段数据成员和成员函数;//一般将函数定义为public
private:
私有段数据成员和成员函数;//一般将数据成员定义为private
protected:
保护段数据成员和成员函数;
}; //一对花括号相括说明类的成员,以分号结束类定义语句。
注意事项:(1)private用于声明私有成员。私有成员只能让类内的函数访问,不能在类外使用。
(2)如果私有成员放在第一段,可以省略关键字private,但其他关键字不能省略。
(3)public声明公有成员。公有成员是类的外接口,在类中和类外可见。
(4)在类的声明中不能对数据成员初始化
(5)类的对象可以是其他类的对象,但不能以类自身的对象作为本类的成员。
二.成员函数
1.在类中声明原型,可以在类外给出函数体实现,并在函数名前使用类名加以限定;
也可以在类中声明后,直接给出函数体,形成内联成员函数。
第一种函数定义格式:
返回类型 类名::成员函数(参数表)
{
//函数体
}
例:设计钟表的时分秒
class Clock
{
public:
void SetTime(int NewH,int NewM,int NewS);
void ShowTime();
private:
int Hour,Minute,Second;
};
void Clock::SetTime(int NewH,int NewM,int NewS)
{
Hour=NewH;
Minute=NewM;
Second=NewS;
}
void Clock::ShowTime()
{
cout<<Hour<<":"<<Minute<<":"<<Second;
} //类外定义了两个函数
2.允许声明重载函数和带默认形参值的函数
三.对象
1.类的对象声明形式:
类名 对象名1,对象2,……;
(1)在声明类的同时,直接定义对象在}后直接写出对象名。例如:
class Coord {
public:
void setCoord(int,int);
int getx();
int gety();
private:
int x,y;
}op1,op2;
(2))声明了类之后,在使用时再定义对象,定义的格式与一般变量的定义格 式相同。例如:
class Coord {
//… };
// …
main()
{
Coord op1,op2;
// …
}
注:定义对象时,才申请存储空间。
四.类中成员的访问方式
1.类中成员互访:直接用成员名
2.类外访问:
对象名.成员名(注:仅对于public属性的成员)
(1)通过对象名和成员运算符访问对象成员
class Student
{
public:
int num;
char name [20];
char sex;
public:
void display();
}stud1;
……
stud1.num=100;
stud1.display();
(2)指针访问
指针名->成员名
如:student stud1,*p;
p=&stud1;
cout<<p->num;
(3)引用
如:student stud1;
student &stud2=stud1;
cout<<stud2.num;