已知一个类A,其中Fun()函数是类A的一个成员函数,A*p,a;p=&a;,则下面语句正确的是()。A.语句p=

题目

已知一个类A,其中Fun()函数是类A的一个成员函数,A*p,a;p=&a;,则下面语句正确的是( )。

A.语句p=&a;是把对象a赋值给指针变量p

B.语句A*p,a;p=&a;调用两次类A的构造函数

C.对语句*p.fun();的调用是正确的

D.语句 p->fun();和语句 a.fun();等价

参考答案和解析
正确答案:D
解析:A是把对象的地址值赋给指针;B只会调用一次类的构造函数;C正确的调用应是(*p).fun()。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

( 22 ) Sample 是一个类,执行下面语句后,调用 Sample 类的构造函数的次数是

Sample a[2], *p = new Sample;

A ) 0

B ) 1

C ) 2

D ) 3


正确答案:D

第2题:

类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.SetVariabte(5)的调用是正确的

D.语句p->SetVariable(5)与语句my.SetVariable(5)等价


正确答案:D
解析: 语句p=&my,是把对象my的地址值赋值给指针变量P;语句MyClass*p,my;,由于p只是一个指向对象的指针,因此定义指针p不调用构造函数,所以此语句只调用一次构造函数;讨成员函数的引用可以通过两种形式:指针->成员函数(形参表)或者对象名、成语函数名(形参表)。

第3题:

已有函数fun(a,b),为了使函数指针变量P指向函数fun,则使用的赋值语句是______。


正确答案:p=fun
p=fun 解析:函数入口地址称为函数的指针。可以使用指针变量指向fun函数,然后通过该指针变量调用此函数。赋值语句就是将函数fun的入口地址赋值给指针变量P,只需将函数名赋给P,不能写成“p=fun(a,b)”形式。函数名就代表了函数入口地址,即p=fun。

第4题:

已知p是一个指向类A公有数据成员的指针,a是类A的一个对象,如果要给p所指向的成员赋值为5,语句应写为【 】。


正确答案:a.  *p=5;
a.  *p=5; 解析:由于是公有成员,类对象可以直接访问类的公有成员*号表示指针所指向的内容。

第5题:

类MyClas定义如下: Class MyClas{ public: MyClas(){value=0;} setVariable(int i){value=I;} private: int value; }则以下对语句序列 MyClas *p,my;p=&my; 的描述正确的是( )。

A.语句 p->setVariable(5) 与语句 my.setVariable(5) 等价

B.对语句 *p.setVariable(5)的调用是正确的

C.语句 MyClas *p,my; 会调用两次类MyClas的构造函数

D.语句 p=&my; 是把对象my赋值给指针变量p


正确答案:A
解析:选项A中,p是对象指针,所以调用p的成员要用符号“->”,而my是一般的类对象,所以调用my的成员用“.”;选项B中正确的调用方式应该是(*p).setVariable;选项C中仅调用一次类对象的构造函数;选项D是把对象my的地址赋值给指针变量p,而不是对象本身。

第6题:

类MyClass的定义如下: class MyClass { public: MyClass(){value=0;} SetVariable(int i){value=i;} private: int value; }; 则对下列语句序列正确的描述是( )。

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正确。

第7题:

已知“int*p;fun(p);”,其中,函数fun没有返回值,且其形参定义为引用调用方式,则下列给出的fun函数原型中正确的是()。

A.voidfun(inta[]);

B.voidfun(int*&a);

C.voidfun(int&a[]);

D.voidfun(int&*a);


正确答案:B

第8题:

设p是指向一个类动态对象的指针变量,则执行"delete p;"语句时,将自动调用该类中的______函数。


正确答案:析构
析构

第9题:

已知函数原型"double fun();",要定义一个函数指针变量p指向该函数的首地址,则其定义语句为"double (*p)()=fun;"。()

此题为判断题(对,错)。


正确答案:正确

第10题:

假定AB为一个类,则执行“ABa(4),b[3],*p[2];”语句时,自动调用该类构造函数3次。()


参考答案:错误

更多相关问题