类和对象的创建和使用——设计一个学生信息类

任务描述

本关任务:声明并定义一个学生信息类。

相关知识

为了完成本关任务,你需要掌握类的声明和定义。

在现实世界中,经常有属于同一类的对象。例如,你的自行车只是世界上很多自行车中的一辆。在面向对象软件中,也有很多共享相同特征的不同的对象,可以利用这些对象的相同特征为它们建立一个集合,而这个集合就称为类。

C++ 中类是把各种不同类型的数据(称为数据成员)和对数据的操作(成员函数)组织在一起而形成的用户自定义的数据类型。它提供了可重用性的好处。

类定义包括声明实现两大部分。声明部分提供了对该类所有数据成员和成员函数的描述,而实现部分提供了所有成员函数的实现代码。

类的声明

类的声明,指的是描述一个类所拥有的结构。类的声明主要包含两个部分:成员变量和成员函数。

声明一个类的格式如下:

 

  1. class 类名
    {
    public: // 类的公有成员
    int A; // 公有的成员变量
    void PublicFunc(); // 公有的成员函数
    
    private: // 类的私有成员
    long B; // 私有的成员变量
    void PrivateFunc(); // 私有的成员函数
    
    public: // public,private 块可以多次交替出现
    double C;
    
    }; // 注意不要忘了最后的分号
    class 是 C++ 中新增的关键字,专门用来声明类的,后面紧跟着类名,类名的首字母一般大写,以和其他的标识符区分开。{}内部是类所包含的成员变量和成员函数,它们统称为类的成员。public 也是 C++ 的新增关键字,它只能用在类的定义中,表示访问权限,下面这里介绍两种访问性:
  • public:公开访问性,代表这个成员能在类的定义以外的地方被使用

  • private:私有访问性,代表这个成员只能在类的定义内被使用

例如:

  1. class 类名
    {
    public: // 类的公有成员
    int A; // 公有的成员变量
    void PublicFunc(); // 公有的成员函数
    
    private: // 类的私有成员
    long B; // 私有的成员变量
    void PrivateFunc(); // 私有的成员函数
    
    public: // public,private 块可以多次交替出现
    double C;
    
    }; // 注意不要忘了最后的分号

类的定义

如果说声明是书的目录,那么定义就是目录所指的具体内容。

类的定义,指的是根据声明具体实现类的功能,与一般的函数定义很相似。

比如:


class Test
{
public:
int a;
void PubFun();
private:
int b;
void PriFun();
}; // 声明一个带有两个成员函数的类

void Test::PubFun() // 定义公有的那个成员函数
{
a = 10;
b = 10; // b 是私有成员变量,只能在成员函数的定义中访问
}
void Test::PriFun() //定义私有的那个成员函数
{
a = 20;
b = 20; // b 是私有成员变量,只能在成员函数的定义中访问
}

定义普通函数与类成员函数只有一点不同:在函数名前面加了类名::的前缀。其中的::称之为作用域运算符,它指明了成员函数所属的类。

不管是 public 成员函数,还是 private 成员函数,定义它们的方式都是相同的。

编程要求

在右侧编辑器中的Begin-End之间补充代码,声明并定义一个学生信息类 StInfo,该类有四个成员变量和两个函数,其访问性都为公有,具体要求如下:

  • 学号:int SID

  • 姓名:char *Name

  • 班级:char *Class

  • 手机号:char *Phone

  • 给成员变量赋值的函数: void SetInfo(int sid,char *name,char* cla,char* phone)

  • 打印学生信息的函数:void PrintInfo(),格式请参考测试说明。

测试说明

平台会对你编写的代码进行测试,比对你输出的数值与实际正确数值,只有所有数据全部计算正确才能通过测试:

测试输入:1 小郭 计科1班 12312340000
预期输出:

  1. 学号:1
  2. 姓名:小郭
  3. 班级:计科1班
  4. 手机号:12312340000

测试输入:2 小王 计科2班 12312340001
预期输出:

  1. 学号:2
  2. 姓名:小王
  3. 班级:计科2班
  4. 手机号:12312340001
#include <iostream>

using namespace std;



class StInfo

{

    /********* Begin *********/

    //在此处声明StInfo类

    public:

    int SID;

    char *Name;

    char *Class;

    char *Phone;

    void SetInfo(int sid,char *name,char *cla,char *phone);

    void PrintInfo();

    

    /********* End *********/

};



/********* Begin *********/

//在此处定义StInfo类

void StInfo::SetInfo(int sid,char *name,char *cla,char *phone)

{

    SID=sid;

    Name=name;

    Class=cla;

    Phone=phone;

}

void StInfo::PrintInfo()

{

    cout<<"学号:"<<SID<<endl;

    cout<<"姓名:"<<Name<<endl;

    cout<<"班级:"<<Class<<endl;

    cout<<"手机号:"<<Phone<<endl;

}



/********* End *********/
  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值