c 關於轉換函式的概念及explicit關鍵字

2021-10-08 15:25:53 字數 1001 閱讀 9506

轉換函式和explicit

轉換函式(類—>基本型別)

過載資料型別,如這下面的 double()

class fraction

operator double() const

private:

int m_num;

int m_den;

};int main()

//編譯器遇到4+f時會優先判斷是否過載了+號,發現沒有,又看f能否型別轉換為double或者int,找到了轉換為double的函式後實現轉換函式

no-explicit(基本型別—>類)

需要乙個one-argument-ctor

class fraction

fraction operator +(const fraction& f)

private:

int m_num;

int m_den;

};int main()

//編譯器看到f+4後發現是物件加物件,並且過載了+號,於是隱式的將4呼叫建構函式建立了物件來完成

//explicit關鍵字可取消這種隱式轉換

//與轉換函式不能同時滿足(加了explicit就可以)

例:

#includeusing namespace std;

class fraction

//explicit fraction(int num,int dem=1) :numerator(num), denominator(dem){} 解決

operator double() const //轉換函式

fraction& operator+(const fraction& f)

private:

int numerator;

int denominator;

};int main()

函式的概念及功能

函式名 是呼叫這個函式的乙個依據 引數 是函式實現功能時要用到的必要資料 返回值 函式運算結果 功能 函式的功能是什麼,下面會給出具體的闡述 函式是乙個自我包含的完成一定相關功能的執行 段。說白了就是將要實現的功能進行模組化,它是實現某種功能的演算法集合,有助於程式的可重用性 string 型轉化成...

反函式的概念及函式性質

基本定義 一般地,設函式y f x x a 的值域是c,若找得到乙個函式g y 在每一處g y 都等於x,這樣的函式x g y y c 叫做函式y f x x a 的 反函式,記作y f 1 x 反函式y f 1 x 的定義域 值域分別是函式y f x 的值域 定義域。最具有代表性的反函式就是對數函...

liunx訊號概念及c訊號函式的使用

liunx訊號機制是程序之間相互傳遞訊息的一種方法,訊號全稱為軟中斷訊號,也有人稱作軟中斷。從它的命名可以看出,它的實質和使用很象中斷。所以,訊號可以說是程序控制的一部分。linux 下的訊號可以模擬於dos下的int或者是windows下的事件.在有乙個訊號發生時候相信的訊號就會傳送給相應的程序....