在现实世界中,经常有属于同一类的对象。例如,你的自行车只是世界上很多自行车中的一辆。在面向对象软件中,也有很多共享相同特征的不同的对象:矩形、雇用记录、视频剪辑等。可以利用这些对象的相同特征为它们建立一个集合。而这个集合就称为类。类是定义同一类所有对象的变量和方法的蓝图或原型。例如,可以建立一个定义包含当前档位等实例变量的自行车类。这个类也定义和提供了实例方法(变档、刹车)的实现。实例变量的值由类的每个实例提供。因此,当你创建自行车类以后,必须在使用之前对它进行实例化。当创建类的实例时,就建立了这种类型的一个对象,然后系统为类定义的实例变量分配内存。然后可以调用对象的实例方法实现一些功能。相同类的实例共享相同的实例方法。
除了实例变量和方法,类也可以定义类变量和类方法。可以从类的实例中或者直接从类中访问类变量和方法。类方法只能操作类变量 - 不必访问实例变量或实例方法。系统在第一次在程序中遇到一个类时为这个类建立它的所有类变量的拷贝
- 这个类的所有实例共享它的类变量。
- 这个类的所有实例共享它的类变量。
摘抄自百度:点击打开链接
接下来,看看代码,举一个简单的案例:
1、
#include <iostream> using namespace std ; //定义HotDog类 //注意:类没有空间 class HotDog { //私有成员 private: //只有本身成员方法可以访问或者友员函数可以访问 int age ; //成员变量 int bbb ; //公有成员 public: //成员方法 成员函数 //static void say_hello(void) static void say_hello(void) { int a ; int b ; cout << "hello HotDog" << endl ; } //一般情况只要是私有成员都需有get set 操作方法 void Set_Age(int age) { this->age = age ; } int Get_Age(void) { return this->age ; } //声明某个函数为该类的友员函数 friend int main(void) ; //受保护成员 protected: }; int main(void) { class HotDog Dog ; Dog.age = 100 ; cout << "age : " << Dog.age << endl ; // Dog.Set_Age(100); // // cout << "age : " << Dog.Get_Age() << endl ; //除非操作方法被声明为static才可以用类名直接调用 HotDog::say_hello(); return 0 ; }
执行结果:a:100
hello HotDog