第一周项目一

来源:互联网 发布:才25岁,做程序员就很累 编辑:程序博客网 时间:2024/06/05 15:39
#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

l         main函数中,定义的stud1stud2称为对象

l         该类中,numnamesex称为类的数据成员,其访问权限为私有的,意味着只有本类中的成员函数才能引用它们,类外不能调用

l         该类中,set_datadisplay称为类的成员函数,其访问权限为公开的,意味着外界可以调用它们

l         main函数中26行后,调用stud1.display();将会出现什么结果?请解释结果。

l         运行窗口会输出三个随机数或字符,原因是由于尚未对stud1中的num,name,sex赋值,计算机自动输出了三个随机数据。

l         请删除上面加的一行代码,在main()函数的28行后,调用stud2.sex=’f’,记录提示的错误?为什么会这样?

l         9:10: error: 'char Student::sex' is private

l          29:11: error: within this context

l         原因是sex是私有的数据,不能被外界直接引用

l         

l         将第9char sex;移到第10行后,即将sex成员声明为公共数据成员,再次编译程序。请解释不会出错的原因,并对这种做法进行评价。

l         移动sexsex变成了公用的数据。可以在main()函数中被访问,上一个问题的sex不能被访问的问题被解决,虽然stud2.sex=’f’但在下一步stud2.set_data(2,"She",'m')stud2.sex又被再次赋值为’m’。对于这样的写法,我的看法是不好,sex变成公用的数据后外界能够直接引用修改它,相当于把对象的属性变成了行为,程序容易产生问题。

l         将第6private:去掉,结果是否发生变化,请解释原因

l         不会,因为class类的定义中既不指定private,也不指定public,则系统就默认为是私有的。

l         将第10public:去掉,记录出现的情况,并解释原因。

l          11:10: error: 'void Student::set_data(int, char*, char)' is private

l          27:30: error: within this context

l          27:30: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

l          11:10: error: 'void Student::set_data(int, char*, char)' is private

l          28:31: error: within this context

l          28:31: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

l          17:10: error: 'void Student::display()' is private

l          29:19: error: within this context

l          17:10: error: 'void Student::display()' is private

l          30:19: error: within this context

l         去掉publicset_datadisplay两个公用的成员函数变成了私有的成员函数,main函数中将不能再直接访问它们,所以出错了。


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 消毒柜开孔尺寸高度太高了怎么办 苏宁易购买的东西比专卖店贵怎么办 手机打字键盘上没有语音功能怎么办 网贷催收发语音侮辱人怎么办 康力无机房电梯到楼层不关门怎么办 档案工龄少算了工资领开了怎么办 别人骚扰我打电话报警人走了怎么办 因外借医保卡被香港保险拒保怎么办 医保和社保断了一个月怎么办 苹果8呼叫受限请勿越权使用怎么办 药物储存2~8度没冰箱怎么办 利仁分体电饼铛做饼熟的慢怎么办 闲鱼买的东西自提有问题怎么办 老板油烟机的表层的膜掉了怎么办 给老板打工老板跑路了怎么办 公司要业务员承担客户的欠款怎么办 从自己公司出去抢自己客户怎么办? 在苏宁买东西买贵了怎么办 苏宁购物小票不见了未提货怎么办 结痂的地方扣掉了颜色不一样怎么办 实体店买手机不给发票怎么办 小孩学英语字母怎么都记不住怎么办 聊客老是提示网络连接失败怎么办? 天猫购物漏发客服不理怎么办 京东二维码被骗怎么办联系客服号码 京东客服打电话来让自己退款怎么办 淘宝上买到的衣服是坏的怎么办 淘宝上买到的产品是坏的怎么办? 在淘宝买到东西是坏的怎么办 冰箱冷冻室门生锈变形关不严怎么办 诲信电冰箱电脑板坏了怎么办 冰箱里放了热水后就不制冷了怎么办 双温冰柜冷藏矿泉水不冰怎么办 美的电饭煲e一传感器也没坏怎么办 美的电饭煲不工作显示C3怎么办 美的电饭煲啪一声响不工作了怎么办 误给宝宝吃了坏的饭怎么办 鼠标没反应键盘指示灯不亮怎么办 新买变频冰箱风机声音大怎么办 三星手机玩王者荣耀一直闪退怎么办 刚申请的阿里大宝卡不想要了怎么办