您的位置:首页 > 其它

2015年大一下第1周项目1-阅读程序(2)

2015-03-14 11:13 218 查看
/*
*Copyright (c) 2014,烟台大学计算机学院
*All rights reserved.
*文件名称:Annpion.cpp
*作者:王耀鹏
*完成日期:2015年3月14日
*版本号:v1.0
*
*问题描述:第二个面向对象的程序——同样功能的程序,提倡以下面的形式书写,这是专业人员更愿意使用的方式。
*输入描述:
*程序输出:
*/
#include <iostream>
#include <cstring>
using namespace std;
class Student
{
public:
    void set_data(int n, char *p,char s);
    void display( );
private:
    int num;
    char name[20];
    char sex;
};
void Student::set_data(int n, char *p,char s)
{
    num=n;
    strcpy(name,p);
    sex=s;
}
void Student::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;
}
问题:

•概括这种写法的特点____条理清晰,使程序更容易被看懂____。
•在类定义中,公共成员在前,私有成员在后,有何好处?_使得程序更加直观,对主函数中运用到的函数更加清楚。__
•成员函数的实现写在类定义之外,有何好处?____思路明确,自顶向下,逐步求精。____
•将第5行public: 去掉,记录出现的问题___成员函数变成private型。___,原因是___类中默认的类型为private型__。加上public,将程序改回正确状态。
•将第18行void Student::display( )写作为void display( ),即去掉Student::,结果会是__函数范围不明确___?Student::的作用是___确定函数范围__。将程序改回正确状态。
•在第30行后加一句:stud1.num=3,记录出现的情况,并解释原因。___'num' is private,因为num是数据成员,类型为私有型。___
•去掉刚加的那一行,将第31行stud1.display();中的stud1.去掉,记录出现的情况,并解释原因。___范围不明确,因为stud1.的作用是确定对象。_____
•在32行后增加cout<<sizeof(stud1)语句,看输出的结果,请做出解释__输出"28"这个数字,"28"为对象stud1在内存中所占的字节数。_?
•初学者常将类定义后的分号丢掉,试将13行最后的分号去掉,记录出现的提示,并做出解释。____expected';' after class definition. 缺少分号,就表示类的定义没有结束。也就没有了类的定义。_____
•你能想到的其他“坏”点子继续折腾吗?折腾出真知!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: