C++ 面向对象 - 构造函数与析构函数

这篇博客展示了使用C++实现的三个功能:(1)构造函数创建学生信息类,包括 SID 和姓名;(2)创建学生信息表对象数组,支持添加学生信息及打印所有记录;(3)模拟共享书店系统,使用静态成员跟踪书店用户数和书籍共享情况。通过这些示例,展示了C++中类和对象的运用以及静态成员的特性。
摘要由CSDN通过智能技术生成

(1)构造函数 —— 学生信息类

#include<iostream>
#include<string>
using namespace std;
 
class Student
{
/********* Begin *********/
public:
Student();
Student(int sid,string name);
~Student();
int SID;
string Name;
//在此处声明所需的成员
/********* End *********/
};
 
/********* Begin *********/
Student::Student()
{
    SID=0;
    Name="王小明";
}
//在此处定义成员函数
Student::Student(int sid,string name)
{
    SID=sid;
    Name=name;
}
Student::~Student()
{
    cout<<SID<<" "<<Name<<" "<<"退出程序"<<endl;
}

(2)对象数组 —— 学生信息表

#include <string>
#include <iostream>
using namespace std;
 
/********* Begin *********/
class Student
{
    //在此处声明所需的成员
    public:
    int SID;
    string Name;
    float Sco;
    Student();
    Student(int sid,string name,float sco)
    {
        SID=sid;
        Name=name;
        Sco=sco;
    }
};
    Student ss[5];
    int ssCount;
    Student::Student()
    {}   
/********* End *********/
 
 
void Add(int sid,string name,float sco)
{
    /********* Begin *********/
    ss[ssCount]=Student(sid,name,sco);
    ssCount++;
   /********* End *********/
}
 
void PrintAll()
{
    /********* Begin *********/
    //打印出学生表中所有记录
    for(int i=0;i<ssCount;i++)
    {
        cout<<ss[i].SID<<" "<<ss[i].Name<<" "<<ss[i].Sco<<endl;
    }
 /********* End *********/
}
 
void Average()
{
    /********* Begin *********/
    //计算并打印出学生表中的平均成绩
    float sum=0.00;
    float ave;
    for(int i=0;i<ssCount;i++)
    {
        sum+=ss[i].Sco;
    }
    ave=sum/ssCount;
    cout<<"平均成绩"<<" "<<ave<<endl;
    
    /********* End *********/
}

(3)静态成员 —— 模拟共享书店

#include <string>
#include <iostream>
using namespace std;
 
/********* Begin *********/
class User
{
    //在此处声明所需的成员
    public:
    static int UserCount;
    static int BookCount;
    string Name;
    int Books;
    User(string name,int books);
    ~User();
    static void GetState();   
};
int User::UserCount=0;
int User::BookCount=0;
User::User(string name,int books)
{
    UserCount++;
    Name=name;
    Books=books;
    cout<<Name<<" "<<Books<<" "<<"进入"<<endl;
    BookCount+=Books;
}
User::~User()
{
    UserCount--;
    cout<<Name<<" "<<Books<<" "<<"离开"<<endl;
    BookCount-=Books;
}
void User::GetState()
{
    cout<<"书店人数:"<<User::UserCount<<","<<"书店共享书数量:"<<User::BookCount<<","<<"人均共享数量:"<<User::BookCount/User::UserCount<<endl;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值