class Student{ public: //成员变量 char *name; int age; float score; //成员函数 void say(){ cout<<name<<"的年龄是"<<age<<",成绩是"<<score<<endl; } };
class
是 C++ 中新增的关键字,专门用来定义类。Student
是类的名称;类名的首字母一般大写,以和其他的标识符区分开。{ }
内部是类所包含的成员变量和成员函数,它们统称为类的成员(Member);由{ }
包围起来的部分有时也称为类体,和函数体的概念类似。public
也是 C++ 的新增关键字,它只能用在类的定义中,表示类的成员变量或成员函数具有“公开”的访问权限,初学者请先忽略该关键字,我们将在《C++类成员的访问权限以及类的封装》中讲解。Student liLei; //创建对象
Student
是类名,liLei
是对象名。这和使用基本类型定义变量的形式类似:
int a; //定义整型变量从这个角度考虑,我们可以把 Student 看做一种新的数据类型,把 liLei 看做一个变量。
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; } }; int main(){ //创建对象 Student stu; stu.name = "小明"; stu.age = 15; stu.score = 92.5f; stu.say(); return 0; }运行结果:
&
获取它的地址,例如:Student stu; Student *pStu = &stu;pStu 是一个指针,它指向 Student 类型的数据,也就是通过 Student 创建出来的对象。
new
关键字(C++ new和delete运算符简介),例如:
Student *pStu = new Student;在栈上创建出来的对象都有一个名字,比如 stu,使用指针指向它不是必须的。但是通过 new 创建出来的对象就不一样了,它在堆上分配内存,没有名字,只能得到一个指向它的指针,所以必须使用一个指针变量来接收这个指针,否则以后再也无法找到这个对象了,更没有办法使用它。也就是说,使用 new 在堆上创建出来的对象是匿名的,没法直接使用,必须要用一个指针指向它,再借助指针来访问它的成员变量或成员函数。
->
来访问对象的成员变量和成员函数,这和通过结构体指针来访问它的成员类似,请看下面的示例:
pStu -> name = "小明"; pStu -> age = 15; pStu -> score = 92.5f; pStu -> say();下面是一个完整的例子:
#include <iostream> using namespace std; class Student{ public: char *name; int age; float score; void say(){ cout<<name<<"的年龄是"<<age<<",成绩是"<<score<<endl; } }; int main(){ Student *pStu = new Student; pStu -> name = "小明"; pStu -> age = 15; pStu -> score = 92.5f; pStu -> say(); delete pStu; //删除对象 return 0; }运行结果:
.
,通过对象指针访问成员使用箭头->
,这和结构体非常类似。
本文链接:http://task.lmcjl.com/news/8433.html