问题
单项选择题
若有以下程序:
#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。