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