·类与对象的关系:(例题在文末)
在c++中,对象的类型称为类,类代表了某一批对象的共和体特征;
类是对象的抽象,对象是类的实例
如何声明类类型:
(和结构体类型的声明比较类似)对比:
自行点开
struck Student{ int num; char name[20]; char sex; };
class Student{ int num; char name[20]; char sex; //数据成员 void display(){//成员函数 cout<<"学号:"<<num<<' '; cout<<姓名:"<<mane<<' '; cout<<性别:"<<sex<<' '; } }; Student student1,student2;
这样的类定义的弊端,是在外界不能调用display函数看起来很安全BUT没啥用......
SO:
应该是这样的(书上正解——);
class Student{ private: int num; char name[20]; char sex; public: void display(){ //声明以下部分为公有 cout<<num<<' '<<name<<' '<<sex; } }; Student stu1,stu2;
除了private public 还有一个叫protected(这个是受保护的,不能被类外访问)
综上 类申明的一般形式就是
class 类名{
private:
私有的数据和成员函数;
public:
共有的数据和成员函数;
};
定义对象的方法
一,先声明类类型,然后再定义对象;
LIKE前面的
Student student1,student2; //Student 是已经申明的类类型;
(书上说 也可以:
class Student student1,student2; //我好懒不想多写.......这种方法是从C语言继承下来的......我还是愿意少打几个字母
二,在声明类的同时声明变量
//我好懒好懒
就和结构体一样
class Student{ private: int num; char name[20]; char sex; public: void display(){ cout<<num<<' '<<name<<' '<<sex; } }stu1,stu2;
三,不出现类名直接定义对象
不提倡所以我就不写了
在类外定义成员函数
void Student::display(){ //这个双冒号不能丢,还有类名一定要注意;
}
::叫作用域限定符或作用域运算符
class Student{ private: int num; char name[20]; char sex; public: void display(); }stu1,stu2; void Student::display(){ cout<<num<<" "<<name<<" "<<sex<<' '; }