单选题
有如下程序段:#include<iostream>using namespace std;class A{public:int data;static int data2;void show(){cout<<data<<endl://1cout<<data2<<endl://2}static void print(){cout<<data<<endl://3tout<<data2<<endl://4}};int A::data2=8:编译时出错的语句的编号是( )。
【正确答案】
C
【答案解析】解析:A类中,定义了两个数据成员:普通数据成员data和静态数据成员data2;定义了两个成员函数:普通成员函数show()和静态成员函数print()。 ①静态数据成员data2必须在类定义体的外部定义,定义时不能标示为static。 ②普通成员函数show()可以访问普通数据成员data和静态数据成员data2;静态成员函数print()可以直接访问静态数据成员data2,但不能直接使用普通成员data。所以题意中,语句3编译出错。故本题答案为C选项。