題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。
#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。