/*
* Copyright (c) 2014, 烟台大学计算机学院
* 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();,将会出现什么结果?请解释原因。_stud1输出不正确,因为没有初始化就输出_______
请删除上面加的一行代码,在main()函数的28行后,调用stud2.sex='f';,记录提示的错误__sex is private___?为什么会这样?___sex的访问权限为私有,类外无法直接调用____
将第9行char sex;移到第10行后面,即将sex成员声明为公共数据成员,再次编译程序。请解释不会出错的原因,并对这种做法进行评价。___sex为public类型,类外可直接调用,_但不赞同此做法,这样会在main函数中造成不便____________________
将第6行private: 去掉,结果是否发生变化,请解释原因。__不会,因为在class下,不声明访问权限则默认为private_____
将第10行public: 去掉,记录出现的情况,并解释原因。__成员函数无法调用,因为在类内成员函数已默认为private_____
<pre class="html" name="code">
运算结果:
学习心得:
对类与对象有了一定的了解以及对private与public的了解。