C 運算子過載練習題目

2021-09-19 23:20:27 字數 3692 閱讀 9021

練習陣列下標運算子過載(10分)

題目內容:

在下面提供的mycircle類中新增對陣列下標運算子的過載。

要求:按照陣列下標由小到大,陣列下標運算子按照次序分別返回圓心x座標,圓心y座標,圓的半徑。

下標超出範圍,則返回帶符號整型數中最小的值

可以為mycircle類新增資料域成員並且修改其函式成員。

但是不能修改主函式**

#include 

#include 

#include 

using namespace std;

class myshape 

public:

void setcolor(int r , int g , int b) 

int getr() 

int getg() 

int getb() 

virtual void draw() = 0;

myshape() 

};class mycircle : public myshape 

mycircle() = default;

mycircle(mycircle& acircle) 

void setcenter(int x , int y) 

void setradius(int radius) 

void draw() 

//----在此處新增陣列下標運算子的過載函式原型宣告

};//----在此處新增關係陣列下標運算子的過載定義

int main() 

return 0;

}注1:通過 numeric_limits::min()  可以拿到最小的整數。該函式需要包含標頭檔案

注2:陣列下標運算子要返回乙個引用才能作為左值,但是「帶符號整型數中最小的值」是個常量,不能作為函式的引用返回值。那麼,可以在類中定義乙個資料域成員,讓它等於那個最小的值,然後返回這個資料域成員的引用,就可以做左值了。

注3:oj使用gcc編譯器。

輸入格式:

空格分隔的3個整數

輸出格式:

8個整數,每行乙個。第8個整數後面有換行

輸入樣例:

1 2 3

輸出樣例:

-2147483648

-2147483648

第9行是空行

時間限制:500ms記憶體限制:32000kb

#include #include #include #include using namespace std;

class myshape

public:

void setcolor(int r, int g, int b)

int getr()

int getg()

int getb()

virtual void draw() = 0;

myshape()

};class mycircle : public myshape

mycircle() = default;

mycircle(mycircle& acircle)

void setcenter(int x, int y)

void setradius(int radius)

void draw()

//----在此處新增陣列下標運算子的過載函式原型宣告

int & operator (int i)

}};//----在此處新增關係陣列下標運算子的過載定義

int main()

return 0;

}

在如下給定的**中,為 mycircle 類新增關係運算子 >、< >=、< mycircle >(10分)

題目內容:

在如下給定的**中,為 mycircle 類新增關係運算子 >、<、>=、<=、==、!= ,實現按照半徑對 mycircle 物件進行比較。

要求關係運算子過載後的返回值均為 bool 型別

不得修改所給的**

#include 

#include 

#include 

using namespace std;

class myshape 

public:

void setcolor(int r , int g , int b) 

int getr() 

int getg() 

int getb() 

virtual void draw() = 0;

myshape() 

};class mycircle : public myshape 

mycircle() = default;

mycircle(mycircle& acircle) 

void setcenter(int x , int y) 

void setradius(int radius) 

void draw() 

//----在此處新增關係運算子  >、<、>=、<=、==、!=  的過載原型宣告

};//----在此處新增關係運算子的過載定義

int main() 

輸入格式:

空格分隔的3個整數

輸出格式:

6個整數,每行乙個

整數只限0或者1

輸入樣例:

8 9 1

輸出樣例:

一共6行。最後一行後面沒有換行符

時間限制:500ms記憶體限制:32000kb

#include #include #include using namespace std;

class myshape

public:

void setcolor(int r, int g, int b)

int getr()

int getg()

int getb()

virtual void draw() = 0;

myshape()

};class mycircle : public myshape

mycircle() = default;

mycircle(mycircle& acircle)

void setcenter(int x, int y)

void setradius(int radius)

void draw()

//----在此處新增關係運算子 >、<、>=、<=、==、!= 的過載原型宣告

bool operator> (mycircle &a)

bool operator< (mycircle &a)

bool operator== (mycircle &a)

bool operator>= (mycircle &a)

bool operator<= (mycircle &a)

bool operator != (mycircle &a)

};//----在此處新增關係運算子的過載定義

int main()

c 運算子過載練習

利用運算子過載實現自己的mystring類 mystring.h pragma once include using namespace std class mystring mystring.cpp define crt secure no warnings include mystring.h ...

C 運算子過載練習

總時間限制 1000ms 記憶體限制 65536kb 在此處補充你的 描述 程式填空 include using namespace std class myint int inc int n int main return 0 輸入 多組資料,每組一行,整數n 輸出對每組資料,輸出一行,包括兩個整...

C 運算子過載練習

總時間限制 1000ms 記憶體限制 65536kb 在此處補充你的 描述 補足程式使得其輸出結果是 include include using namespace std struct a a int n n n int main 輸入無輸出 樣例輸入 無樣例輸出 40注意實際上a帶有const關...