C++类和对象
---恢复内容开始---
一:C++类的定义和对象的创建
与结构体一样,类只是一种复杂数据类型的声明,不占用内存空间。而对象是类这种数据类型的一个变量,或者说是通过类这种数据类型创建出来的一份实实在在的数据,所以占用内存空间。
类的定义
1 class Student{ 2 public: 3 //成员变量 4 char *name; 5 int age; 6 float score; 7 8 //成员函数 9 void say(){ 10 cout<<name<<"的年龄是"<<age<<",成绩是"<<score<<endl; 11 } 12 };
class
是 C++ 中新增的关键字,专门用来定义类。
Student
是类的名称;类名的首字母一般大写,以和其他的标识符区分开。
{ }
内部是类所包含的成员变量和成员函数,它们统称为类的成员(Member);由{ }
包围起来的部分有时也称为类体,和函数体的概念类似。
public
也是 C++ 的新增关键字,它只能用在类的定义中,表示类的成员变量或成员函数具有“公开”的访问权限。
注意在类定义的最后有一个分号;
,它是类定义的一部分,表示类定义结束了,不能省略。
整体上讲,上面的代码创建了一个 Student 类,它包含了 3 个成员变量和 1 个成员函数。
类只是一个模板(Template),编译后不占用内存空间,所以在定义类时不能对成员变量进行初始化,因为没有地方存储数据。只有在创建对象以后才会给成员变量分配内存,这个时候就可以赋值了。
类可以理解为一种新的数据类型,该数据类型的名称是 Student。与 char、int、float 等基本数据类型不同的是,Student 是一种复杂数据类型,可以包含基本类型,而且还有很多基本类型中没有的特性。
创建对象
有了 Student 类后,就可以通过它来创建对象了
1 Student liLei; //创建对象
Student
是类名,liLei
是对象名。这和使用基本类型定义变量的形式类似:
1 int a; //定义整型变量
从这个角度考虑,我们可以把 Student 看做一种新的数据类型,把 liLei 看做一个变量。
在创建对象时,class 关键字可要可不要,但是出于习惯我们通常会省略掉 class 关键字
1 class Student LiLei; //正确 2 Student LiLei; //同样正确
---恢复内容结束---
一:C++类的定义和对象的创建
与结构体一样,类只是一种复杂数据类型的声明,不占用内存空间。而对象是类这种数据类型的一个变量,或者说是通过类这种数据类型创建出来的一份实实在在的数据,所以占用内存空间。
类的定义
1 class Student{ 2 public: 3 //成员变量 4 char *name; 5 int age; 6 float score; 7 8 //成员函数 9 void say(){ 10 cout<<name<<"的年龄是"<<age<<",成绩是"<<score<<endl; 11 } 12 };
class
是 C++ 中新增的关键字,专门用来定义类。
Student
是类的名称;类名的首字母一般大写,以和其他的标识符区分开。
{ }
内部是类所包含的成员变量和成员函数,它们统称为类的成员(Member);由{ }
包围起来的部分有时也称为类体,和函数体的概念类似。
public
也是 C++ 的新增关键字,它只能用在类的定义中,表示类的成员变量或成员函数具有“公开”的访问权限。
注意在类定义的最后有一个分号;
,它是类定义的一部分,表示类定义结束了,不能省略。
整体上讲,上面的代码创建了一个 Student 类,它包含了 3 个成员变量和 1 个成员函数。
类只是一个模板(Template),编译后不占用内存空间,所以在定义类时不能对成员变量进行初始化,因为没有地方存储数据。只有在创建对象以后才会给成员变量分配内存,这个时候就可以赋值了。
类可以理解为一种新的数据类型,该数据类型的名称是 Student。与 char、int、float 等基本数据类型不同的是,Student 是一种复杂数据类型,可以包含基本类型,而且还有很多基本类型中没有的特性。
创建对象
有了 Student 类后,就可以通过它来创建对象了
1 Student liLei; //创建对象
Student
是类名,liLei
是对象名。这和使用基本类型定义变量的形式类似:
1 int a; //定义整型变量
从这个角度考虑,我们可以把 Student 看做一种新的数据类型,把 liLei 看做一个变量。
在创建对象时,class 关键字可要可不要,但是出于习惯我们通常会省略掉 class 关键字
1 class Student LiLei; //正确 2 Student LiLei; //同样正确