目录
结构体初识
什么是结构体?
在学类之前我们一定有所了解,所谓结构体就是一种自定义的数据类型,它可以将有相关性的数据组合起来,并且能够将它们组成一个单独的统一体,比如我可以用一下方法来声明一个成绩结构体,下面来看一个栗子:
该结构体中包含了两个数据元素
#include <iostream> using namespace std; struct Score { int age, score; }; int main() { Score score1; score1.age = 18; score1.score = 100; }
但是结构体有这么多好处,那么结构体的缺点是什么呢?比如我们建立了一个结构体变量。我们可以随便在外部直接对结构体中的数据进行访问,但是在代码编写出来是我们就不会想把所有数据都展示给外部,有些数据是绝对不可以。在外部随意访问的,比如你写了一个登入系统,你就不想让所有用户的账号密码能够在外部进行随意访问,所以在C++中引入了类的概念,它可以更好的解决C结构体的这些缺点。
从结构体到类
C++中的类就是可以解决上面问题的一种安全有效的数据类型,类和结构体的扩充的形式是非常相似得到,类声明中内容包括了数据成员和成员函数,并且数据成员和成员函数又可以分为公有,保护,和私有三种,以下是类声明的一般形式
Class 类名{ Public: …… protected: …… private: …… };
类的声明是以关键字class。注意类体的最后一个花括号是以分号结尾的
下面就来看一个关于类的例子:
#include <iostream> using namespace std; class Time{ public: void SetTime(int h,int m,int s); void Print_Time(); private: int Hour,Minute,Second; }; void Time::SetTime(int h,int m,int s){ Hour = h; Minute = m; Second = s; } void Time::Print_Time(){ cout << Hour << ":"; cout << Minute << ":"; cout <<Second << endl; } int main(){ Time mytime; mytime.SetTime(9,20,30); mytime.Print_Time(); system("pause"); return 0; }
在这个类中我们创建了两个函数 void SetTime(int h,int m,int s)用来创建对时间变量进行初始化和 void Print_Time();这个函数的作用是对创建的时间对象输出它的Hour,Minute,second这三个数据成员对应的值
下面就是该代码执行后的结果: