代码改变世界

C++中类的使用

2013-09-15 15:59  Keiven_LY  阅读(685)  评论(0编辑  收藏  举报

1、类定义的基本形式

class 类名
{
      private:

           私有的数据成员定义
             私有成员函数

      public:
           公共成员函数

};


如:

class computer
{
  private:              //私有成员列表
    char brand[20];
    float price;

  public:               //公有成员列表(访问接口)
    void print();
    void SetBrand(char *sz);
    void SetPrice(float pr);
}

上面定义了一个Computer类,private数据成员只能由类内的函数访问,而public数据成员可以在类外部访问,作为外部访问接口。

2、类的实现

  • 成员函数在类定义时定义
class computer
{
  private:              //私有成员列表
    char brand[20];
    float price;

  public:               //公有成员列表(访问接口)
    void print()
    {
        cout<<"品牌:"<<brand<<endl;
        cout<<"价格:"<<price<<endl;
    }
    void SetBrand(char *sz)
    {
        strcpy(brand,sz);
    }
    void SetPrice(float pr)
    {
        price=pr;
    }
}
  • 成员函数在类定义的外部定义

成员函数在类定义的外部定义时,应使用作用域操作符::来标识函数所属的类,如下形式所示:

函数返回类型  类名::成员函数名(参数列表)

                                                                               {

                                                                                           函数体

                                                                               }

    首先创建一个头文件“classdemo.h”,用来定义类

class computer
{
private:
    char brand[20];
    float price;
    
public:
    void print();
    void SetBrand(char *sz);
    void SetPrice(float pr);
};

  再创建classdemo.cpp文件,在其中定义成员函数,如下:

#include "classdemo.h"   //包含Computer类定义
#include<iostream>
#include<cstring>.

using namespace std;

void computer::print()      //类成员函数的外部实现(注意域操作符::)
{
    cout<<"品牌:"<<brand<<endl;
    cout<<"价格:"<<price<<endl;
}

void computer::SetBrand(char *sz)   //类成员函数的外部实现(注意域操作符::)
{
    strcpy(brand,sz);
}

void computer::SetPrice(float pr)    //类成员函数的外部实现(注意域操作符::)
{
    price=pr;
}

3、类的实现

项目解决方案如下:

文件classdemo.h与classdemo.cpp如上所述

shili.cpp文件如下:

#include "classdemo.h"  //包含computer类
#include<stdlib.h>
int main()
{
    computer com1;
    com1.SetBrand("Lenovo");
    com1.SetPrice(5000);
    com1.print();
    system("pause");
}

结果如下: