关于对象成员的访问,下面哪一种说法是错误的?
stud1.num=1001;//假设num已定义为公用的整型数据成员表示将整数1001赋给对象stud1中的数据成员num。其中“.”是成员运算符,用来对成员进行限定,指明所访问的是哪一个对象中的成员。
Time t1; //定义对象t1 Time &t2=t1;//定义Time类引用变量t2,并使之初始化为t1 cout<<t2.hour;//输出对象t1中的成员hour由于t2与t1共占同一段存储单元(即t2是t1的别名),因此t2.hour就是t1.hour。对于对象引用类型,不能用“一>”运算符来访问其成员,因此B选项错误。
class Time{ public : //数据成员是公用的 int hour; int minute; }; Time t,*p;//定义对象t和指针变量p p=&t;//使p指向对象t cout<<p->hour;//输出p指向的对象中的成员hour在p指向t的前提下,p->hour,(*p).hour和t.hour三者等价。
class Cat{ public: int weight; }; int main(){ Cat cat;//声明一个对象 cat.weight=5; cout<<"The cat's weight is "<<cat.weight<<endl; return 0; }由于Cat类中的成员函数weight被声明成了公有成员,那么我们就可以在main函数中首先创建一个Cat类的对象(cat),并利用.运算符就可以直接调用weight这个数据成员了。因此C选项正确。
class A{ friend class B; private: int aa; }; class B{ public: void output(){ cout << a.aa << endl; } private: A a; }因此D选项的表述是错误的。