单选题
已知类MyClass的定义如下:
class Base{
public:
void functionl(Base &c){cout<<c.data;}
static void function2(Base &C){cout<<c.data;}
void function3(){cout<<data;}
static void function4(){cout<<data;}
private:
int data;
};
其中有编译错误的函数是______。
【正确答案】
D
【答案解析】[解析] 该题考查的内容是静态成员函数的相关知识,静态成员的引用不需要用对象名,静态成员函数也没有this指针。在静态成员函数的实现中不能直接引用类中说明的非静态成员,但可以引用类中说明的静态成员和类以外的函数和数据。若静态成员函数中要引用非静态成员时,则可通过对象来引用。所以答案为D。