C 學習筆記 簡單的關於類的上機考題1

2021-10-24 10:28:48 字數 4737 閱讀 7761

1、有兩個長方柱,其長、寬、高分別為: (1)15,26,27;(2)11,15,30。求解並輸出它們的體積。編乙個基於物件的程式,在類中用帶引數的建構函式。

#include

using

namespace std;

/*有兩個長方柱,其長、寬、高分別為:

(1)15,26,27;(2)11,15,30。求解並輸出它們的體積。

編乙個基於物件的程式,在類中用帶引數的建構函式。

*/class

rectangle

~rectangle()

float

volume()

private

:int length;

int width;

int height;};

intmain()

2、編寫乙個程式,宣告抽象基類shape,由它派生出圓形circle和矩形rectangle,用乙個函式area()分別輸出上述兩個圖形的面積,兩個圖形的資料在定義物件時給出。

#include

using

namespace std;

/*3.編寫乙個程式,宣告抽象基類shape,

由它派生出圓形circle和矩形rectangle,

用乙個函式area()分別輸出上述兩個圖形的面積,

兩個圖形的資料在定義物件時給出。

*/class

shape

;class

circle

:public shape

virtual

void

area()

const

virtual

void

shapename()

const

protected

:float radius;};

class

rectangle

:public shape

virtual

void

area()

const

virtual

void

shapename()

const

protected

:int length;

int width;};

intmain()

3、分別定義教師類teacher和幹部類cadre,

採用多重繼承的方式由這兩個類派生出新類teacher_cadre(教師兼幹部類)。

要求:(1)在兩個基類中都包含姓名、年齡、性別、位址、**資料成員。

(2)在teacher類中還包含資料成員職稱title,在cadre類中還包含資料成員職務post,

在teacher_cadre類中還包含資料成員工資wage

(3)對兩個基類中的姓名、年齡、性別、位址、**資料成員用相同的名字,

在訪問這類資料成員時,指定作用域。

(4)在類體中宣告成員函式,在類外定義成員函式。

(5)在派生類teacher_cadre的成員函式show中呼叫teacher類中的display函式,

輸出姓名、年齡、性別、位址、**,然後再用cout語句輸出職務和工資。。

#include

using

namespace std;

/*分別定義教師類teacher和幹部類cadre,

採用多重繼承的方式由這兩個類派生出新類teacher_cadre(教師兼幹部類)。

要求: (1)在兩個基類中都包含姓名、年齡、性別、位址、**資料成員。

(2)在teacher類中還包含資料成員職稱title,在cadre類中還包含資料成員職務post,

在teacher_cadre類中還包含資料成員工資wage

(3)對兩個基類中的姓名、年齡、性別、位址、**資料成員用相同的名字,

在訪問這類資料成員時,指定作用域。

(4)在類體中宣告成員函式,在類外定義成員函式。

(5)在派生類teacher_cadre的成員函式show中呼叫teacher類中的display函式,

輸出姓名、年齡、性別、位址、**,然後再用cout語句輸出職務和工資。。

*/class

teacher

;teacher::

teacher

(string n,

int a,string s,string add,

int p,string t)

void teacher::

display()

class

cadre

;cadre::

cadre

(string n,

int a,string s,string add,

int p,string po)

void cadre::

display()

class

teacher_cadre

:public teacher,

public cadre

;teacher_cadre::

teacher_cadre

(string n,

int a,string s,string add,

int p,string t,string po,

float w)

:teacher

(n,a,s,add,p,t)

,cadre

(n,a,s,add,p,po)

,wage

(w)void teacher_cadre::

show()

intmain()

4、

1.過載運算子「+」,使之能用於兩個複數相加,並輸出相加結果。

2.依據上題,過載運算子「<<」用來輸出複數。

3.依據上題,過載運算子「>>」用來輸入複數。

#include

using

namespace std;

/*1.過載運算子「+」,使之能用於兩個複數相加,並輸出相加結果。

2.依據上題,過載運算子「<<」用來輸出複數。

3.依據上題,過載運算子「>>」用來輸入複數。

*/class

complex

complex

(double r,

double i)

:real

(r),

image

(i) complex operator

+(complex &c2)

;friend ostream&

operator

<<

(ostream&

,complex&);

friend istream&

operator

>>

(istream&

,complex&);

protected

:double real;

double image;};

complex complex::

operator

+(complex &c2)

ostream&

operator

<<

(ostream &output,complex &c)

istream&

operator

>>

(istream &input,complex &c)

intmain()

5、宣告一字串類string,用來存放不定長的字串,過載運算子==,<,>,用於比較兩個字串的等於大於小於的比較運算。

#include

#include

using

namespace std;

/*宣告一字串類string,用來存放不定長的字串,過載運算子==,<,>,

用於比較兩個字串的等於大於小於的比較運算。

*/class

string

string

(char

*str)

friend

bool

operator

>

(string &s1,string &s2)

;friend

bool

operator

<

(string &s1,string &s2)

;friend

bool

operator

==(string &s1,string &s2)

;void

display()

;protected

:char

*p;}

;void string::

display()

bool

operator

>

(string &s1,string &s2)

bool

operator

<

(string &s1,string &s2)

bool

operator

==(string &s1,string &s2)

intmain()

c 學習筆記 8 關於模板類

1 就算是預設建構函式不需要構造任何東西,也要寫出乙個空函式體!如大整數類class long int return is 代碼有誤。待修改!int size void output private std vectordata long int long int 這一句不能少,即使是空函式體!2 ...

C 學習筆記 類的朋友

在類a中,用friend關鍵字可以將乙個全域性函式宣告為該類的 朋友 也可以將另乙個類宣告為該類的朋友。class object 將全域性函式print宣告為 朋友 friend void print object p 將類something宣告為 朋友 friend class something...

C 類的學習筆記(二)

今天繼續學習類,這可是oop較為核心的內容。今天來講訪問控制。訪問控制有三個關鍵字protected public和private。當我們使用類物件的程式可以直接訪問公有成員函式,如果要訪問私有函式,我們可以通過公有函式來訪問。這是因為可以通過公有函式處理私有資料,這也是封裝的體現,資料要加密,不能...