备考2020年12月计算机二级C++的小伙伴看过来,树图网(环球青藤旗下品牌)小编已帮你把2020年12月计算机二级C++复习资料整理好,具体可以看看“2020年12月计算机二级C++复习资料:私有数据成员和友元”,希望对你有所帮助,其他更多内容敬请关注树图网。
树图思维导图提供 2020年12月计算机二级C++复习资料:私有数据成员和友元 在线思维导图免费制作,点击“编辑”按钮,可对 2020年12月计算机二级C++复习资料:私有数据成员和友元 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:407fd4630532eae803bb7e050b92f09b
2020年12月计算机二级C++复习资料:私有数据成员和友元思维导图模板大纲
1.取值和赋值成员函数
面向对象的约定就是保证所有数据成员的私有性。一般我们都是通过公有成员函数来作为公共接口来读取私有数据成员的。某些时候,我们称这样的函数为取值和赋值函数。
取值函数的返回值和传递给赋值函数的参数不必一一匹配所有数据成员的类型。
#include iostream.h
class Date
int mo, da, yr;
public:
Date(int m,int d,int y) { mo=m; da=d; yr=y; }
int getyear() const { return yr; }
void setyear(int y) { yr = y; }
int main()
Date dt(4,1,89);
cout< dt.setyear(97);
cout< return 0;
上面的例子很简单,不分析了。要养成这样的习惯,通过成员函数来访问和改变类中的数据。这样有利于软件的设计和维护。比如,改变Date类内部数据的形式,但仍然用修改过的getyear()和setyear()来提供访问接口,那么使用该类就不必修改他们的代码,仅需要重新编译程序即可。
2.常量成员函数
注意上面的程序中getyear()被声明为常量型,这样可以保证该成员函数不会修改调用他的对象。通过加上const修饰符,可以使访问对象数据的成员函数仅仅完成不会引起数据变动的那些操作。
如果程序声明某个Date对象为常量的话,那么该对象不得调用任何非常量型成员函数,不论这些函数是否真的试图修改对象的数据。只有把那些不会引起数据改变的函数都声明为常量型,才可以让常量对象来调用。
3.改进的成员转换函数
下面的程序改进了从Date对象到CustomDate对象的成员转换函数,用取值和赋值函数取代了使用公有数据成员的做法。(以前的程序代码在上一帖中)
#include iostream.h
class CustomDate
int da,yr;
public:
CustomDate() {}
CustomDate(int d,int y) { da=d; yr=y; }
void display() const {cout< int getday() const { return da; }
void setday(int d) { da=d; }
class Date
int mo,da,yr;
public:
Date(int m,int d,int y) { mo=m; da=d; yr=y; }
operator CustomDate() const;
Date::operator CustomDate() const
static int dys[] = {31,28,31,30,31,30,31,31,30,31,30,31};
CustomDate cd(0,yr);
int day=da;
for(int i=0;i cd.setday(day);
return cd;
int main()
Date dt(11,17,89);
CustomDate cd;
cd=dt;
cd.display();
return 0;
注意上面的程序中Date::operator CustomDate()声明为常量型,因为这个函数没有改变调用它对象的数据,尽管它修改了一个临时CustomDate对象并将其作为函数返回值。
树图思维导图提供 一、研究内容 在线思维导图免费制作,点击“编辑”按钮,可对 一、研究内容 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:4f21797dd3e8b08f1951dfc24e7be94f
树图思维导图提供 904名中国成年人第三磨牙相关知识、态度、行为和病史的横断面调查 在线思维导图免费制作,点击“编辑”按钮,可对 904名中国成年人第三磨牙相关知识、态度、行为和病史的横断面调查 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:10b9a8a2dd2fb4593f8130ef16c320fc