橢圓類 2(拷貝建構函式和析構函式)

2022-09-15 16:09:10 字數 1476 閱讀 7828

【問題描述】

(1)拷貝(複製)建構函式的實現。

在已經完成的「橢圓類——1」的基礎上,增加乙個拷貝建構函式。

函式原型格式:ellipse(const ellipse & e);

(2)增加show()函式,顯示橢圓的外切矩形的頂點座標。

(3)增加乙個成員函式fun(int y),將橢圓外切矩形的左上角和右下角的縱座標分別加y和減y。

(4)增加析構函式,在析構函式中輸出「xigou」以及待析構物件的外切矩形左上角的橫縱座標。

【輸入形式】

在主函式中輸入頂點座標後建立乙個物件,並用該物件作為初始值再建立乙個新物件。

輸入乙個值,用於修改新物件的外切矩形的縱座標。

【輸出形式】

在主函式裡呼叫這2個物件的show函式分別輸出外切矩形的頂點座標,

呼叫area函式分別計算並輸出橢圓的面積。

接收修改值y後,呼叫fun函式修改新物件的縱座標。重新計算新物件的面積並輸出。

【樣例輸入】

-3 1 3 -1

1【樣例輸出】

-3 1 3 -1

-3 1 3 -1

9.4245

9.4245

18.849

xigou -3 2

xigou -3 1

#include

#include

#include

using

namespace std;

class

ellipse

intgety1()

intgetx2()

intgety2()

void

show()

;//顯示橢圓的外切矩形的頂點座標

void

fun(

int y)

;//將橢圓外切矩形的左上角和右下角的縱座標分別加y和減y};

ellipse::

ellipse

(int xx1,

int yy1,

int xx2,

int yy2)

ellipse::

ellipse

(const ellipse & e)

//拷貝建構函式

ellipse::

~ellipse()

//析構函式

double ellipse::

area()

void ellipse::

show()

//顯示橢圓的外切矩形的頂點座標

void ellipse::

fun(

int y)

//將橢圓外切矩形的左上角和右下角的縱座標分別加y和減y

intmain()

建構函式析構函式和拷貝建構函式

建構函式 建立類物件,並初始化其值。1.傳參 2.按照類成員宣告順序依次構造其成員 3.執行建構函式函式體 析構函式 用來完成物件被刪除前的一些清理工作 釋放類物件 1.執行析構函式函式 2.按照類中成員變數宣告順序的逆序依次析構其成員 初始化列表 初始化物件成員 呼叫成員物件的帶參構造 形式 在建...

建構函式 析構函式和拷貝建構函式

建構函式是乙個特殊的成員函式,名字與類名相同,建立類型別物件時由編譯器自動呼叫,保證每個資料成員都有 乙個合適的初始值,並且在物件的生命週期內只呼叫一次。建構函式是用來初始化物件的 其特徵如下 函式名與類名相同。無返回值。物件例項化時編譯器自動呼叫對應的建構函式。建構函式可以過載。class dat...

建構函式 拷貝建構函式 析構函式

1.如果定義了兩個預設建構函式,vc只回給出warning.2.如果有預設引數的預設構造,如果你給了第乙個預設的話 所有傳遞引數都要有預設植 否則報錯.不過如果是第乙個引數的預設值沒有給出的話,編譯器卻看不出問題,但是沒有 試過這種情況建構函式能不能正常工作.建構函式 用來初始化物件的資料成員,與類...