问题
单项选择题
以于下面定义的类MyClass, 在函数f()中将对象成员n的值修改为50的语句应该是( )。 class MyClass { public:MyClass (int x){ n=x;}void SetValue(int n1){ n=n1;} private:int n; }; int f() {MyClass *ptr = new MyClass(45);________________; }
A.MyClass(50)
B.SetValue (50)
C.ptr->SetValue(50)
D.ptr->n=50
答案
参考答案:C
解析: 本题考核对象指针的使用。函数f()中,首先定义了一个对象指针ptr,并初始化指向申请的一块内存。在C++中,通过对象指针访问其成员,要用“->”符号,由此可知,选项A和B是错误的。对于选项D,由于变量n是MyClass类的私有成员,所以不能通过对象进行直接调用。因此选项D也是错误的。选项C中,采用了“->”符号调用MyClass类的公有成员函数SetValue(),并且传入的实参是50,都符合语法规定,所以能实现题目所要求的功能。故本题答案是C。