8.4 C++类的使用

    定义了一个类之后,便可以如同用int和double等类型符声明简单变量一样,创建该类的对象,称为类的实例化。由此看来,类的定义实际上是定义了一种类型,类不接收或存储具体的值,只作为生成具体对象的“蓝图”,只有将类实例化,创建对象(声明类的变量)后,系统才会为对象分配存储空间。

    8.4.1 声明一个对象

    代码8.4 使用类定义声明了一个对象,并利用对象名实现了public成员函数的调用。

    代码8.4 使用类声明一个对象ClassVariable


    <—————————————-文件名:computer.h———————————————-> 01 class computer//类定义 02 { 03 private: 04 char brand[20]; 05 float price; 06 public: 07 void print(); 08 void SetBrand(char*sz); 09 void SetPrice(float pr); 10 }; <—————————————-文件名:computer.cpp——————————————-> 11 #include"computer.h"//包含类定义 12 #include<iostream> 13 using namespace std; 14 void computer:print()//成员函数的实现 15 { 16 cout<<"品牌:"<<brand<<endl; 17 cout<<"价格:"<<price<<endl; 18 } 19 void computer:SetBrand(char*sz) 20 { 21 strcpy(brand,sz);//字符串复制 22 } 23 void computer:SetPrice(float pr) 24 { 25 price=pr; 26 } <————————————-文件名:example804.cpp——————————————-> 27 #include"computer.h"//定义了类computer 28 int main()//主函数 29 { 30 computer com1;//声明了computer类对象(或说类变量)com1 31 com1. SetBrand("Lenovo");//调用public成员函数SetBrand设置品牌brand 32 com1. SetPrice(8000);//调用public成员函数SetPrice设置品牌price 33 com1. print();//信息输出 34 return 0; 35 }

    输出结果如下所示。


    品牌:Lenovo 价格:8000

    【代码解析】该代码由3个文件组成,分别是c o m p u t e r.h(c o m p u t e r类的定义)、computer.cpp(computer类的实现)和example804.cpp(main()函数),在example804.cpp中,语句“#include"computer.h"”引入computer类的定义,使computer类名在example804.cpp中可见,只有这样,才能在example804.cpp代码第30行使用computer类名声明该类型的对象(变量)com1,并调用com1的公用成员函数,实现对其private数据成员的读写。

    通过“对象名.公共成员函数(参数表)”的形式就可以调用对象成员函数,通过“对象名.公共数据成员”就可引用对象的数据成员。