C++问题关于“类”的选择题
[单选题]若有如下的定义:classty{public:intn;voidprint(){cout<<n;}}x,*p=&x;则下列表达式中,____________是错...
[单选题]若有如下的定义:
class ty
{ public:
int n;
void print() { cout<<n;}
}x,*p=&x;
则下列表达式中,____________是错误的。
(A)、 x.n=5
(B)、 p.n
(C)、 (*p).print( )
(D)、 p->n=5 展开
class ty
{ public:
int n;
void print() { cout<<n;}
}x,*p=&x;
则下列表达式中,____________是错误的。
(A)、 x.n=5
(B)、 p.n
(C)、 (*p).print( )
(D)、 p->n=5 展开
7个回答
展开全部
class ty
{ public:
int n;
void print()
{ cout<<n;}
}x,*p=&x;
则下列表达式中,____________是错误的。
(A)x.n=5 //x是ty类的一个"对象",所以引用对象的成员时可以用分量运算符(.),正确;
(B) p.n //这是"错误"的,因为p是对象指针,通过对象指针使用成员,只有两种方法:(1) p->n,这里表示p指向的对象的成员n (2)(*p).n,这里*p是对指针p取值,等同于"对象"
(C)(*p).print( ) //这是正确的,道理同(B)
(D)p->n=5 //这是正确的,道理同(B)
本题主要考察引用对象(其实就是类的变量或实例)的成员方法,通过对象指针与通过对象(变量)引用是不同的.
分量运行符(.) 在程序设计中有"....的..."的意思,如: a.name 表示对示"对象a 的 姓名"
如果有一个对象指针(如p),则:p.name的意思是"指针p的姓名",这是错误的,因为指针实际上是一个整型值,指针就是指针,其中不含任何分量.
但是可以这样用:p->name,意思是"指针p指向的对象的姓名".
{ public:
int n;
void print()
{ cout<<n;}
}x,*p=&x;
则下列表达式中,____________是错误的。
(A)x.n=5 //x是ty类的一个"对象",所以引用对象的成员时可以用分量运算符(.),正确;
(B) p.n //这是"错误"的,因为p是对象指针,通过对象指针使用成员,只有两种方法:(1) p->n,这里表示p指向的对象的成员n (2)(*p).n,这里*p是对指针p取值,等同于"对象"
(C)(*p).print( ) //这是正确的,道理同(B)
(D)p->n=5 //这是正确的,道理同(B)
本题主要考察引用对象(其实就是类的变量或实例)的成员方法,通过对象指针与通过对象(变量)引用是不同的.
分量运行符(.) 在程序设计中有"....的..."的意思,如: a.name 表示对示"对象a 的 姓名"
如果有一个对象指针(如p),则:p.name的意思是"指针p的姓名",这是错误的,因为指针实际上是一个整型值,指针就是指针,其中不含任何分量.
但是可以这样用:p->name,意思是"指针p指向的对象的姓名".
展开全部
B是错误的,因为p是一个指向ty类的指针,它自己没有成员变量。所以不能用.而应该用->。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
B错了。
因为通过对象调用类的成员函数的方式有:
1.通过普通对象加.运算符来完成,如:x.print();((*p).print()相当于类的对象的调用)。
2.通过指向该类的对象的指针通过->运算符来完成,如p->print();
指针不能通过.运算符调用成员函数或数据: p.n的调用方法是错的。
因为通过对象调用类的成员函数的方式有:
1.通过普通对象加.运算符来完成,如:x.print();((*p).print()相当于类的对象的调用)。
2.通过指向该类的对象的指针通过->运算符来完成,如p->print();
指针不能通过.运算符调用成员函数或数据: p.n的调用方法是错的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
B 错误,原因是P是指针,要->符号才对,C:(*p).print( ) 为什么对呢,因为是解引用,取地址值,所以用点。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
选B。应为p->n;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
B错误!
因为p是指针,所以必须用->才能引用成员变量,故D正确而B错误。
A中x是ty类的一个对象,所以用.引用,即x.n。
C中(*p)相当于x,所以(*p).print( ) 是正确的。
因为p是指针,所以必须用->才能引用成员变量,故D正确而B错误。
A中x是ty类的一个对象,所以用.引用,即x.n。
C中(*p)相当于x,所以(*p).print( ) 是正确的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询