类1(1)
来源:互联网 发布:java生成6位邀请码 编辑:程序博客网 时间:2024/04/30 23:37
#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称为类的数据成员,其访问权限为私有的,意味着类外不能直接调用类中的成员。
该类中,set_data和display称为类的成员函数,其访问权限为公用的,意味着既可以被本类中的成员函数所引用,又可以被类的作用域内的其他函数所引用。
在main()函数中26行后,调用stud1.display();,将会出现什么结果?出现不正确的输出结果,原因:函数中的num,name,sex未赋值。
在main()函数的28行后,调用stud2.sex='f';,记录提示的错误9:10: error: 'char Student::sex' is private和29:11: error: within this context 原因:sex为private,类外不可用。
将第9行char sex;移到第10行后面,即将sex成员声明为公共数据成员,再次编译程序。请解释不会出错的原因,并对这种做法进行评价。
不出错的原因:被声明为公用的成员,本类和类的作用域内的函数都可调用。这种做法,不利于保护数据安全,容易泄露或被他人更改数据。
将第6行private: 去掉,结果是否发生变化,请解释原因。不变,原因:不指定private,系统默认为私有的。
将第10行public: 去掉,记录出现的情况,并解释原因。类外的数据出现错误。原因:set_data和display函数为private,外界不可调用。
0 0
- 类1(1)
- table类(1)
- 异常类(1)
- 时间类(1)
- String类(1)
- 类(1)
- Class类(1)
- 数据结构-(1 1)-异常类构建
- 类的概念(1)
- 类的学习(1)
- 类-构造函数(1)
- 认识StringBuffer类(1)
- 通用DBHelper类(1)
- jdbc 公共类(1)
- 聚类算法(1)
- 类的sizeof(1)
- 线程安全类(1)
- delphi TComponent类(1)
- RubyGems简介和使用 ruby+gem常用命令
- 解锁
- Hibernate之三 调用存储过程、触发器、数据库的隔离级别
- 深度解读django class base view 之 detaiview
- RedHat 8.0/9.0 LVS安裝手冊
- 类1(1)
- JAVA WebService接口调用
- unity3d开发植物生长素游戏
- HBase--Java访问HBase示例
- SVN的eclipse插件下载
- KVO实现原理探究
- 使用quick自定义Button
- SSHを用いた転送
- Android View 的生命周期