问题
单项选择题
以下程序段共有错误( )处 #include <iostream> using namespaces std; class Sample private:int n; public: Sample(int i){ n=i; }void setvalue(int i){ n=i; }void display(){ cout<<"n="<<n<<end1; } }; int main() {const Sample a(l0); a.setvalue(5); a.display(); return 0; }
A.1
B.2
C.3
D.4
答案
参考答案:B
解析: 本题考核常对象、常数据成员和常成员函数。本程序中有两个错误:第1个错误是a.setvalue(5);语句,由于对象a为常对象,所以对象a的私有数据成员n不能被更新;第2处错误是语句a.display();。由于对象a为常对象,所以通过对象a只能调用它的成员函数,而成员函数display()不是常成员函数。