第二周课后实践:阅读程序(1)
2015-03-17 10:53
239 查看
代码:
#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",'m'); stud2.set_data(2,"She",'f'); stud1.display(); stud2.display(); return 0; }
运行结果:
问题:
程序中定义的类名是:Student;
在main函数中,定义的stud1和stud2称为:对象;
该类中,num、name、sex称为类的:数据成员,其访问权限为:私有的,意味着:其只能被本类中的成员函数引用,类外不能调用;
该类中,set_data和display称为类的:成员函数,其访问权限为:公用的,意味着:其既可以被本类中的成员函数所引用,也可以被类的作用域内的其它函数引用;
在main()函数中26行后,调用stud1.display();,将会出现什么结果?请解释原因:出现随机数,因为尚未接收数据;
请删除上面加的一行代码,在main()函数的28行后,调用stud2.sex='f';,记录提示的错误:error:'char Student::sex' is private;为什么会这样:sex是私有数据,不允许类外访问;
将第9行char sex;移到第10行后面,即将sex成员声明为公共数据成员,再次编译程序。请解释不会出错的原因,并对这种做法进行评价:sex变为公用数据,可以在类外访问;破坏了类的隐蔽性;
将第6行private: 去掉,结果是否发生变化,请解释原因:不会,系统默认其为私有;
将第10行public: 去掉,记录出现的情况,并解释原因:不能在类外调用,因为若不指定为public,系统默认其为私有。
相关文章推荐
- 第二周--课后实践:阅读程序(2)
- 第二周项目1-课后实践:阅读程序
- 第二周课后实践--阅读程序
- 第二周--课后实践:阅读程序
- 第二周 课后实践:阅读程序(2)
- 第二周 课后实践:阅读程序(1)
- 第二周 课后实践 程序阅读(2)
- 第二周课后实践:阅读程序(2)
- 第二周 课后实践 阅读程序2
- 第二周课后实践-阅读程序
- 第二周课后实践阅读程序
- 第二周课后实践-阅读程序
- 第二周 课后实践 程序阅读
- 第二周--课后实践:阅读程序(1)
- 第三周 课后实践 阅读程序
- 第一周课后实践:阅读程序1
- 第2周项目-课后实践·阅读程序(2)
- 第三周课后实践-阅读程序
- 第二周上机实践项目——阅读程序(2)
- 第一周 课后实践:阅读程序(3)