[Aufgabe für Pädagogen] Objektorientiert in C++ – Konstruktor und Destruktor

[Aufgabe für Pädagogen] Objektorientiert in C++ – Konstruktor und Destruktor

Das fühlt sich an, als gäbe es nichts zu sagen, es handelt sich lediglich um eine spezielle Art von Funktion.
Wenn die Frage manchmal einen Fehler meldet, können Sie überprüfen, ob der leere Konstruktor nicht geschrieben ist.

T1-Konstrukteur – Informationskurs für Schüler

Es gibt wirklich viele Möglichkeiten zu schreiben. Meistens bevorzuge ich es, Funktionen zu schreiben, wenn die Klasse definiert ist.

#include<iostream>
#include<string>
using namespace std;

class Student
{
    
    
/********* Begin *********/
	public :
	Student() {
    
    SID = 0; Name = "王小明";}
	Student(int sid, string name) {
    
    SID = sid, Name = name;}
	~Student() {
    
    cout << SID << ' ' << Name << " 退出程序" << endl ;}
	private :
	int SID; string Name;
//在此处声明所需的成员

/********* End *********/
};

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

//在此处定义成员函数

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

T2-Objektarray – Tabelle mit Schülerinformationen

Das Problem besteht darin, dass beim Definieren des Arrays ein Fehler gemeldet wird, wenn Sie keinen leeren Konstruktor schreiben.

#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 st[10010];
int cnt;
/********* End *********/


void Add(int sid,string name,float sco)
{
    
    
    /********* Begin *********/
	st[ ++ cnt] = Student(sid, name, sco);
    /********* End *********/
}

void PrintAll()
{
    
    
    /********* Begin *********/
    //打印出学生表中所有记录
	for (int i = 1; i <= cnt; i ++ )
		cout << st[i].SID << ' ' << st[i].Name << ' ' << st[i].Sco << endl ;
    /********* End *********/
}

void Average()
{
    
    
    /********* Begin *********/
    //计算并打印出学生表中的平均成绩
	float sum = 0;
	for (int i = 1; i <= cnt; i ++ ) sum += st[i].Sco;
	cout << "平均成绩 " << sum / cnt << endl ;
    
    
    /********* End *********/
}

Statische T3-Mitglieder – simulierter gemeinsamer Buchladen

Ein statisches Mitglied ist eine von einer gesamten Klasse gemeinsam genutzte Variable, ähnlich einer globalen Variablen auf Klassenebene.

#include <string>
#include <iostream>
using namespace std;

/********* Begin *********/
class User
{
    
    
	//在此处声明所需的成员
	public :
	// User() {}
	User(string name, int books);
	~User();
	static void GetState();
    private :
	string Name;
	int Books;
	static int UserCount, BookCount;
    
    
};
//在此处定义成员函数

int User :: UserCount = 0, User :: BookCount = 0;

User :: User(string name, int books) {
    
    
	Name = name, Books = books;
	cout << Name << ' ' << Books << " 进入" << endl ;
	UserCount ++ , BookCount += Books;
}

User :: ~User() {
    
    
	cout << Name << ' ' << Books << " 离开" << endl ;
	UserCount -- , BookCount -= Books;
}

void User :: GetState() {
    
    
	cout << "书店人数:" << UserCount << ",书店共享书数量:" << BookCount << ",人均共享数量:" << BookCount / UserCount <<endl ;
}
/********* End *********/

Guess you like

Origin blog.csdn.net/JZYshuraK/article/details/128521869