12.1.1 类概述
C++有三大特性:封装、继承、多态,这些都与类有关。类是面向对象的核心内容,非常重要。
C++认为完事万物都可以成为一个类,例如学生组成了学生类,动物有动物类。类又有一些属性,例如学生类有学号、姓名等属性。
下面设计一个圆类:
#include<iostream>
#define PI 3.14
using namespace std;
//设计一个圆类,求周长
class circle
{
//访问权限
public:
//属性,半径
int m_r;
//行为,获取周长
double calculateZC()
{
return 2 * PI * m_r;
}
};
int main()
{
//实例化,通过圆类创建一个具体的圆
circle c1;
//设置属性
c1.m_r = 10;
//调用方法
cout << "圆的周长为:" << c1.calculateZC() << endl;
}
在上面的示例中,看出类的关键字是class,在定义属性“半径”m_r,行为calculateZC(),行为本质上时一个函数。这些属性和行为前都有public修饰,这样就可以获取到这些属性。
实例化时,类跟普通数据类型一样,设置属性和调用方法时跟结构体一样。
仔细观察案例,了解类的定义格式和基本使用。
下面再看一个学生类:
#include<iostream>
#include<string>
using namespace std;
class student
{
//类中的属性和行为统一称为成员
//属性也叫 成员属性 成员变量
//行为也叫 成员函数 成员方法
public:
string m_Name;
int m_Id;
void setName(string name)
{
m_Name = name;
}
void setId(int Id)
{
m_Id = Id;
}
void showStudent()
{
cout << "姓名:" << m_Name << endl;
cout << "学号:" << m_Id << endl;
}
};
int main()
{
student stu1;
stu1.m_Name = "张三";
stu1.m_Id = 1;
stu1.showStudent();
student stu2;
stu2.setName("李四");
stu2.setId(2);
stu2.showStudent();
}