使用資料隱藏和封裝來儲存學生資訊的C++程式
假設我們想要建立一個包含資料隱藏和封裝的學生資料型別。學生必須具有first_name、last_name、age和class項,但這些變數不能直接訪問。我們將不得不定義一些函式,例如get_firstname()、set_firstname()、get_age()、set_age()等來檢索和更新變數值,以及一個to_string()函式以以下格式顯示學生詳細資訊(年齡、名字、姓氏、班級)。從控制檯獲取四個引數作為輸入,並使用我們定義的setter方法設定它們,並使用getter方法顯示每個專案,最後使用to_string()方法。
因此,如果輸入類似於
priyam kundu 16 10
那麼輸出將是
16 priyam kundu 10 (16, priyam, kundu, 10)
為了解決這個問題,我們將遵循以下步驟:
定義一個類,其中first_name、last_name為字串型別,age、cl為整數型別。
為所有屬性定義getter函式。
為所有屬性定義setter函式。
使用字串流物件定義to_string()函式,並建立與輸出格式匹配的格式化字串。
從main方法執行以下操作:
讀取每一行,並分別儲存first_name、last_name、age、cl。
呼叫setter函式將這些值設定為類成員。
使用getter方法列印所有屬性。
使用to_string()函式以這種格式(年齡、名字、姓氏、cl)顯示學生資訊。
示例
讓我們看看下面的實現,以便更好地理解:
#include <iostream>
#include <sstream>
using namespace std;
class Student{
private:
int age, cl;
string first_name, last_name;
public:
int get_age(){return age;}
int get_class(){return cl;}
string get_firstname(){return first_name;}
string get_lastname(){return last_name;}
void set_age(int a){age = a;}
void set_class(int c){cl = c;}
void set_firstname(string fn){first_name = fn;}
void set_lastname(string ln){last_name = ln;}
string to_string(){
stringstream ss;
ss << "(" << age << ", " << first_name << ", " << last_name << ", " << cl << ")";
return ss.str();
}
};
int main() {
Student stud;
int age, cl;
string first_name, last_name;
cin >> first_name >> last_name >> age >> cl;
stud.set_age(age);
stud.set_class(cl);
stud.set_firstname(first_name);
stud.set_lastname(last_name);
cout << stud.get_age() << endl;
cout << stud.get_firstname() << endl;
cout << stud.get_lastname() << endl;
cout << stud.get_class() << endl;
cout << endl << stud.to_string();
}
輸入
priyam kundu 16 10
輸出
16 priyam kundu 10 (16, priyam, kundu, 10)
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP