2013级C++第3周【项目1-掌握有对象的程序结构】



(1)

l 程序中定义的类名是__Student______?
•l 在main函数中,定义的stud1和stud2称为__对象__________?
•l 该类中,num、name、sex称为类的_____成员属性____,其访问权限为____私有____,意味着__在一般情况下在类的外面无法访问该私有成员,类的内部可以访问_______。
•l 该类中,set_data和display称为类的__成员函数_____,其访问权限为__公有______,意味着__在类的外部和内部都可以使用该成员函数_______。
•l 在main()函数中26行后,调用stud1.display();,将会出现什么结果?请解释原因。___将会出现_
                                                                                                                                               num:1
                                                                                                                                               name:He
                                                                                                                                               sex:f
首先stud1调用set_data函数为stud1对象初始化,然后stud1调用该对象的display成员函数显示对象的属性____

•l 请删除上面加的一行代码,在main()函数的28行后,调用stud2.sex='f';,记录提示的错误__无权访问该成员属性___?为什么会这样?__因为该成员属性为私有_____
•l 将第9行char sex;移到第10行后面,即将sex成员声明为公共数据成员,再次编译程序。请解释不会出错的原因,并对这种做法进行评价。___因为该成员属性访问权限变为公有可以在类的外部进行直接访问。_____________________
•l 将第6行private: 去掉,结果是否发生变化,请解释原因。_不会,因为在不写private的情况下系统会自动默认为private______
•l 将第10行public: 去掉,记录出现的情况,并解释原因。__类的外部将无法通过对象调用成员函数,因为类中的成员函数的访问权限都被改为私有所以造成出错_____

(2)

     l 概括这种写法的特点_         这种写法使程序让人看得更加清晰更加一目了然,也可以是自己的思路更加清晰明了________。

  • l 在类定义中,公共成员在前,私有成员在后,有何好处?___避免忘记写public______ 
  • l 成员函数的实现写在类定义之外,有何好处?__可以使类的内部没有那么冗杂,使自己看得更加清晰,降低出错率。________
  • l 将第5public: 去掉,记录出现的问题__类的外部无权访问该成员函数____,原因是__成员函数被系统默认为私有___。加上public,将程序改回正确状态。
  • l 将第18void Student::display( )写作为void display( ),即去掉Student::,结果会是_该函数没有声明____Student::的作用是_告诉系统此函数属于Student类中的成员函数____。将程序改回正确状态。
  • l 在第30行后加一句:stud1.num=3,记录出现的情况,并解释原因。_无权访问该属性因为该成员属性为私有_____
  • l 去掉刚加的那一行,将第31stud1.display();中的stud1.去掉,记录出现的情况,并解释原因。__没有实例对象无法调用该成员函数______
  • l 在32行后增加cout<<sizeof(stud1)语句,看输出的结果,请做出解释_结果是28应该是数据成员所占字节的和,但又可能需要是4的倍数所以自动补齐__
  • l 初学者常将类定义后的分号丢掉,试将13行最后的分号去掉,记录出现的提示,并做出解释。___
  • C:\Users\旺\Desktop\1233.cpp|15|error: new types may not be defined in a return type|
    C:\Users\旺\Desktop\1233.cpp|15|note: (perhaps a semicolon is missing after the definition of `Student')|
    C:\Users\旺\Desktop\1233.cpp|15|error: two or more data types in declaration of `set_data'|
    C:\Users\旺\Desktop\1233.cpp|15|error: prototype for `Student Student::set_data(int, char*, char)' does not match any in class `Student'|
    C:\Users\旺\Desktop\1233.cpp|7|error: candidate is: void Student::set_data(int, char*, char)|
    C:\Users\旺\Desktop\1233.cpp|15|error: `Student Student::set_data(int, char*, char)' and `void Student::set_data(int, char*, char)' cannot be overloaded|
    ||=== Build finished: 5 errors, 0 warnings (0 minutes, 0 seconds) ===|

    __因为分号是一个结束标志没有这个分号程序可能无法正确判断执行____
  • l 你能想到的其他“坏”点子继续折腾吗?折腾出真知!
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值