问题
单项选择题
类MyClass的定义如下:
class MyClass
public:
MyClass()value=0;
SetVariable(int i)value=i;
private:
int value;
;
则对下列语句序列正确的描述是( )。
MyClass*P, my;p=&my;
A.语句p=&my; 是把对象my赋值给指针变量P
B.语句MyClass*p, my; 会调用两次类MyClass的构造函数
C.对语句*P. SetVariable(5)的调用是正确的
D.语句p->SetVariable(5)与语句my.SetVariable(5)等价
答案
参考答案:D
解析: 选项A) ,语句p=&my;是把对象my的地址值赋值给指针变量P;选项B) ,语句MyClass*p,my;,由于p只是一个指向对象的指针,因此定义指针p不调用构造函数,所以此语句只调用一次构造函数;对成员函数的引用可以通过两种形式;指针->成员函数 (形参表)或者对象名.成语函数名(形参表),故选项C) 错误,选项D) 正确。