第二周阅读程序(1)

来源:互联网 发布:2016无限申请淘宝小号 编辑:程序博客网 时间:2024/05/21 09:48



*copyright (c) 2014, 烟台大学计算机学院.  *All rights reserved.  *文件名称:test.cpp  *作者:陆云杰  *完成日期:2015年3月12日   *版本号:v1.0 *   *  *问题描述:阅读程序 *程序输入: 无*程序输出: 无 */#include <iostream>#include <cstring>using namespace std;class Student{private:    int num;    char name[20];    char sex;public:    void set_data(int n, char *p,char s)    {        num=n;        strcpy(name,p);        sex=s;    }    void display( )    {        cout<<"num: "<<num<<endl;        cout<<"name: " <<name<<endl;        cout<<"sex: " <<sex<<endl;    }};int main(){    Student stud1,stud2;    stud1.set_data(1,"He",'f');    stud2.set_data(2,"She",'m');    stud1.display();    stud2.display();    return 0;}




问题:

  • 程序中定义的类名是____Student____?
  • 在main函数中,定义的stud1stud2称为_____对象_______?
  • 该类中,numnamesex称为类的____成员_____,其访问权限为____私有的____,意味着_____他们只能在类的内部使用____
  • 该类中,set_datadisplay称为类的____成员函数___,其访问权限为____公共的____,意味着___外界可以调用_____
  • main()函数中26后,调用stud1.display();,将会出现什么结果?请解释原因。____运行后会出现三个随机的数字,因为还没有给stud1中的num,name,sex等赋值____
  • 请删除上面加的一行代码,在main()函数的28后,调用stud2.sex='f';,记录提示的错误__9    error:‘char Student::sex' is pritave_      29    error: within this context__为什么会这样?__ 因为“sex”是私有的数据成员,不能再类外直接被调用____
  • 将第9char sex;移到第10行后面,即将sex成员声明为公共数据成员,再次编译程序。请解释不会出错的原因,并对这种做法进行评价__________因为'sex'已经被定义为公共的成员数据了,所以不会出现错误。个人认为这种做法不好,因为就可以在类外修改这个成员数据了,信息不隐蔽,降低了安全性______________
  • 将第6private: 去掉,结果是否发生变化,请解释原因。__不会,因为这样系统会默认是私有的类的数据成员_____
  • 将第10public: 去掉,记录出现的情况,并解释原因______D:\C++\di2zhou\(1)\main.cpp|11|error: 'void Student::set_data(int, char*, char)' is private|
  • _D:\C++\di2zhou\(1)\main.cpp|27|error: within this context|
  • D:\C++\di2zhou\(1)\main.cpp|17|error: 'void Student::display()' is private|
  • 因为成员函数display()已经变成了私有了,所以不能再main函数中进行调用。

       学习心得:翻书,看视频回答的问题,感觉还不错,就是不知道有没有答错的地方。


0 0