/*
* Copyright (c) 2015, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作 者:李晓凯
* 完成日期:2015年 3 月 16 日
* 版 本 号: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函数中,定义的stud1和stud2称为__对象___?
- 该类中,num、name、sex称为类的___数据____,其访问权限为___private_____,意味着___只能被本类的成员函数引用,类外不能调用。
- 该类中,set_data和display称为类的___成员函数____,其访问权限为___public_____,意味着__既可以被本类中的函数成员所引用,也可以被类外的作用域内的其他函数引用__。
- 在main()函数中26行后,调用stud1.display();,将会出现什么结果:—会出现随机数—?请解释原因。__因为num、name、sex还没有赋初值___。
- 请删除上面加的一行代码,在main()函数的28行后,调用stud2.sex='f';,记录提示的错误_char Student ::sex is private____?为什么会这样?__因为sex为私有的,不能被类外的成员函数所引用___。
- 将第9行char sex;移到第10行后面,即将sex成员声明为公共数据成员,再次编译程序。请解释不会出错的原因,并对这种做法进行评价。____因为se只是从private到了public能在类外进行访问了,所以并不会出错____。
- 将第6行private: 去掉,结果是否发生变化:否,请解释原因。__class默认定义为private_____
- 将第10行public: 去掉,记录出现的情况:void Student::set_data(int, char*, char)' is private|,并解释原因。__该函数定义在private中,为私有的,禁止访问。