一.类和对象
(一)类的定义
- 类是创建对象的模板,一个类可以创建多个对象,每个对象都是类类型的一个变量;创建对象的过程,也叫做类的实例化。每个对象都是类的一个具体实例,拥有类的成员变量和成员函数
- 与结构体一样,类只是一种复杂数据类型的声明,不占内存空间。而对象是类这种数据类型的一个变量,或者是说通过类这种数据类型创建出来的一份实实在在的数据,所以占用内存空间
- 类是用户自定义的类型,如果程序中要用到类,必须提前说明,或者使用已存在的类(别人写好的类、标准库中的类等),C++语法本身并不提供成类的名称、结构、内容。
class是C++中新增的关键字,专门用来定义类。Stu是类的名称,类名的首字母一般大写,以和其他标识符分开。{ }内部是类所包含的成员变量和成员函数,他们统称为类的成员;由{ }包围起来的部分有时也称为类体,和函数体的概念类似。public也是 C++ 的新增关键字,它只能用在类的定义中,表示类的成员变量或成员函数具有“公开”的访问权限。
注意在类定义的最后有一个分号;,它是类定义的一部分,表示类定义结束了,不能省略。
class Student
{
public:
//类包含的变量
char *name;
int age;
float score;
//类包含的函数
void say()
{
cout<<name<<"的年龄是 "<<age<<",成绩是"<<score<<endl;
}
};
有了Student类之后,就可以通过它来创建对象,例如:
Student H; //创建对象
Student是类名,H是对象名。这和使用基本类型定义变量的形式类似
int a; //定义整型变量
从这个角度考虑,我们可以把 Student 看做一种新的数据类型,把 liLei 看做一个变量。 在创建对象时,class 关键字可要可不要,但是出于习惯我们通常会省略掉 class 关键字,例如:
class Student LiLei; //正确
Student LiLei; //同样正确
除了创建单个对象,还可以创建对象数组:
Student allStu[100];
该语句创建了一个 allStu 数组,它拥有100个元素,每个元素都是 Student 类型的对象。
(二)访问类的成员
创建对象以后,可以使用点号.来访问成员变量和成员函数,这和通过结构体变量来访问它的成员类似
#include <iostream>
using namespace std;
//类通常定义在函数外面
class Student
{
public:
//类包含的变量
char *name;
int age;
float score;
//类包含的函数
void say(){
cout<<name<<"的年龄是 "<<age<<",成绩是"<<score<<endl;
}
};
i