C++習題與解析(類和對象-06)

字號:

題8.分析以下程序執(zhí)行的結果
    #include
    class Sample
    {
    int A;
    static int B;
    public:
    Sample(int a){A=a,B+=a;}
    static void func(Sample s);
    };
    void Sample::func(Sample s)
    {
    cout<<"A="<    }
    int Sample::B=0;
    void main()
    {
    Sample s1(2),s2(5);
    Sample::func(s1);
    Sample::func(s2);
    }
    解:
    本題說明了靜態(tài)成員函數(shù)的使用方法。其中的數(shù)據(jù)成員B是靜態(tài)數(shù)據(jù)成員,求B之值是在構造函數(shù)中進行的。所以輸出為:
    A=2,B=7
    A=5,B=7
    注意:靜態(tài)成員函數(shù)與靜態(tài)數(shù)據(jù)成員一樣,也不是對象成員。靜態(tài)成員函數(shù)的調用不同于普通的成員函數(shù)。在靜態(tài)成員函數(shù)的實現(xiàn)中,引用類的非靜態(tài)數(shù)據(jù)成員是通過對象進行的,如本題中s.A,引用類的靜態(tài)數(shù)據(jù)成員是直接進行的,如本題中的B。