首页 > 试题广场 >

试从定义方式、调用方式两个方面来分析常成员函数、静态成员函数

[问答题]
试从定义方式、调用方式两个方面来分析常成员函数、静态成员函数和友元函数的区别。考察例6-15,若class Goods的指针域:

Goods * next;

被声明为私有(private)成员,程序会出现什么错误?做什么最小修改能使程序正确运行?


推荐

定义方式

调用方式

常成员函数

函数原型以const做后缀

this指针被约束为指向常量的常指针

与一般成员函数调用形式相同

对数据成员只读

静态成员函数

以static做函数原型前缀

没有this指针

通过类或对象调用

用于操作静态数据成员

友员函数

以friend做函数原型前缀

没有this指针

通过参数访问对象

可以访问对象的不同属性的成员

在例6-15中,若把next声明为私有数据成员,只须把有关指针操作的函数定义为友员函数就可以了:

friend void purchase( Goods * &f, Goods *& r, int w );

friend void sale( Goods * & f , Goods * & r );


发表于 2018-05-07 15:11:49 回复(0)