日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++ 继承和派生 及 学生管理范例

發布時間:2025/6/17 c/c++ 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ 继承和派生 及 学生管理范例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、概念

繼承:在定義一個新的類B時,如果該類與某個已知類A相似(指的是B擁有A的全部特點),那么就可以把A作為一個基類,而把B作為一個派生類(也稱子類)。

  • 派生類是通過對基類進行修改和擴充得到的。在派生類中,可以擴充新的成員變量和成員函數。
  • 派生類一經定義后,可以獨立使用,不依賴于基類。
  • 派生類擁有基類的全部成員函數和成員變量,不論是private,protected 還是 public
  • 在派生類的各個成員函數中,不能訪問基類中的private成員。

2、需要繼承機制的例子 - 學生管理系統

所有的學生都有的共同屬性:

  • 姓名
  • 學號
  • 性別
  • 成績

所有的學生都有的共同方法(成員函數)

  • 是否該留級
  • 是否該獎勵

而不同的學生,又有各自不同的屬性和方法

  • 研究生:有導師和系
  • 大學生:有系
  • 中學生:有競賽特長加分

3、派生類的寫法

class 派生類名 : public 基類名 {};

?

4、派生類對象的內存空間

派生類對象的體積,等于基類對象的體積,再加上派生類對象自己的成員變量的體積。

在派生類對象中,包含著基類對象,而且基類對象的存儲位置位于派生類對象新增的成員

變量之前。如下代碼示:

#include <iostream> #include <string.h>using namespace std;class CBase {int v1, v2; };class CDerived : public CBase {int v3; };int main() {printf("sizeof(CDerived) = %d\n", sizeof(CDerived));return 0; }

輸出的結果是:12

?

5、繼承實例程序:學籍管理

#include <iostream> #include <string.h>using namespace std;class CStudent {private:string name;string id; // student numberchar gender; // 'F' for female, 'M' for maleint age;public:void PrintInfo() {cout << "name: " << name << endl;cout << "id: " << id << endl;cout << "gender: " << gender << endl;cout << "age: " << age << endl;}void SetInfo(const string & name_, const string & id_,int age_, char gender_) {name = name_;id = id_;age = age_;gender = gender_;}string GetName() { return name; } };class CUndergraduateStudnet : public CStudent { private:string department; // 學生所屬的系public:void QualifiedForBaoyan() {cout << "qualified for baoyan" << endl;}void PrintInfo() {CStudent::PrintInfo(); // 調用基類的PrintInfocout << "Department:" << department << endl;}void SetInfo(const string &name_, const string &id_,int age_, char gender_, const string & department_) {CStudent::SetInfo(name_, id_, age_, gender_); // 調用基類的SetInfodepartment = department_;} };int main() {CUndergraduateStudnet s2;s2.SetInfo("Harry Potter", "115200", 20, 'M', "CS");cout<< s2.GetName() << endl;s2.QualifiedForBaoyan();s2.PrintInfo();return 0; }

執行結果如下:

轉載于:https://www.cnblogs.com/aqing1987/p/4351932.html

總結

以上是生活随笔為你收集整理的C++ 继承和派生 及 学生管理范例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。