问题
单项选择题
若有以下程序: #include <iostream> using namespace std; class myClass { private:int var; public:myClass(int i){ var=i;}void add(){ s+=var;}static int s;void display(){ cout<<s<<end1;} }; int myClass::s=0; int main ( ) {myClass a(1),b(2),c(3);a.add();b.add();c.dislay();return O; } 程序执行后的输出结果是( )。
A.1
B.4
C.3
D.7
答案
参考答案:C
解析: 本题考核静态数据成员的应用。解本题的关键是知道静态数据成员类中所有对象共享的成员。每个对象对静态数据成员的操作具有叠加效果。本题在类 myClass中定义了一个静态数据成员s,其初始值为0。定义了3个对象a、b和c,并分别初始化各自的私有成员n为1、2和3。执行“a.add();”语句后,静态数据成员s=1。再执行语句“b.add();”后,s的值变为3。最后执行输出语句“c.display();”,即输出s的值7。