C++函数之类与对象初解4

C++函数之类与对象初解4

一、常成员函数

1、定义:在类中使用关键字const说明的函数为常成员函数

2、格式:   

  类型说明符函数名(参数表) const;

3、注意:    

(1) const是函数类型的一个组成部分,因此在函数的实现部分也要带关键字const。

(2) 常成员函数不能更新对象的数据,也不能调用非const修饰的成员

函数(静态成员函数、构造函数除外)

举例:

#include<iostream>
using namespace std ;
class Simple
{  int  x, y ;
 public :
    void setXY ( int a, int b) { x = a ; y = b ; }
    void printXY() { cout << x << "," << y<< endl ; }
    void  constFun ( ) const//常函数
        { x ++ ; y ++ ; }//非法
};

二、静态成员


1、类成员冠以static声明时,称为静态成员。

2、静态数据成员为同类对象共享。

3、静态成员函数与静态数据成员协同操作。

4、静态成员不属于某一个单独的对象,而是为类的所有对象所共有

5、 静态成员函数的作用不是为了对象之间的沟通,而是为了能处理静态数据成员:

 保证在不依赖于某个对象的情况下,访问静态数据成员

6、格式:

      静态数据成员在定义或说明时前面加关键字static

class A

{

       int n;

       static  int s;

};

总结:

类名::静态成员的名字

对象名.静态成员名字

对象指针->静态成员的名字

在静态成员函数内部,直接访问。

举例:

静态成员函数来访问非静态数据成员。

#include<iostream.h>

class small_cat{

public:

    small_cat(double w){weight=w;total_weight+=w;total_number++;}

    static void display(small_cat &w)

    {cout<<"The small_cat weights "<<w.weight<<"kg\n";}

    static void total_disp()

    {cout<<total_number<<"small_cat total weight ";

      cout<<total_weight<<" kg "<<endl;}

//静态成员函数来访问非静态数据成员。

private:

 double weight; 

    static double total_weight; staticdouble total_number;

};

double small_cat::total_weight=0;double small_cat::total_number=0;

int main()

{   small_cat w1(0.9),w2(0.8),w3(0.7);

     small_cat::display(w1);small_cat::display(w2);

     small_cat::display(w3);small_cat::total_disp();

     return 0;}

 




猜你喜欢

转载自blog.csdn.net/sdau20171755/article/details/80063425