C++   函数与类 之一

本章要点:

1、static在类中的应用

2、const在类中的应用

3、友元

4、内联函数

5、重载函数

6、函数的默认参数

 

一、static在类中的应用

   1、静态数据成员和静态成员函数的定义

   class  A

    {

          public:

      static  int  iVar;     //静态数据成员

      static   void  Function();     //静态成员函数

     };

   2、在类中仅仅需要对静态数据成员进行引用性说明(必须在类内,.h文件中),而在类外进行定义性说明(在类外实现,.cpp文件中),并且这种定义性说明只能有一次。

因为定义性说明对该静态数据成员分配存储空间。

(数据区:常量、全局变量、静态变量。全局变量和静态变量若不初始化,系统自动清零。)

  3、可以不创建对象,直接通过类名引用。

  4、静态成员为该类的所有对象共享,它被存储在一个公共内存空间中,所以叫它为没有this指针(即不占用实质性的存储空间,只给他大小为1的空间,说明它的存在。)。

 

二、静态数据成员的用途

  例子:

class  employee

  {

     int  ID;

     char *Name;

     ……

     static  long  employeeNumber;

  };

每一个类对象是一个雇员,二雇员总数则是需要使用静态数据成员。

可以统计一个类中定义了多少个对象。

 

三、静态成员函数的几点说明

1、考虑到数据的隐藏性,静态数据成员通常被声明为私有的,而通过定义公有的静态成员函数来访问静态数据成员。

2、由于static不是函数类型的一部分,所以在类定义之外定义静态成员函数时,不使用static。

3、静态成员函数只能访问类中的静态数据成员,不能访问其他的非静态数据成员和函数。但是非静态成员函数可以访问静态数据成员。

4、一般来说,使用成员名限定(可以简单理解为类名)访问静态成员比使用对象名(即就是主函数中创建的类对象)访问静态成员要好,因为静态成员不是对象的成员。

5、静态成员可以被继承,则基类对象和派生类对象 共享 该静态成员。

6、静态成员函数不能说明为虚函数。

 

四、const修饰符的参数

1、const修饰函数的参数

      void  Print(const   int  nI);

      void   print(const   A&  refObj);

2、const修饰函数的返回值

       const  int  Area();    //防止语病  Area()  =  10  的出现。检查左值无效性。但是此函数必须是类的方法

3、coonst修饰类的成员函数本身

      int  A:: Show()   const;  //表示此类当中的所有数据成员,在此函数的函数体内全部变为常量。

例子:

//.h

class B
{
    int  data;

public:

    B(int  _data  = 0)
    {
        data = _data;
    }

    void Set(const  int _data)
    {
        data  = _data;
    }

    void  Show()  const
    {
        cout  <<  "DATA:"  <<  data  <<endl;
    }
};

//.cpp

int _tmain(int argc, _TCHAR* argv[])
{
    B obj;
    obj.Set(232);
    obj.Show();
    _getch();
    return 0;
}

 

你可能感兴趣的:(函数,职场,休闲,6)