1. 程式人生 > >c++ 中 operator的兩種用法

c++ 中 operator的兩種用法

c++中的operator 有兩種用法,一種是(operator overloading)運算子過載,一種是(operator casting)操作隱式轉換

例項程式碼如下:

#include <iostream>  
using namespace std;  
class num  
{  
protected:  
    int m_a;  
    int m_b;  
public:  
    num(int a, int b):m_a(a),m_b(b){}  
    num operator + (const num& n )  //用法1
    {  
        this->m_a += n.m_a;  
        this->m_b += n.m_b;  
        return *this;  
    }  
    operator bool()  <span style="white-space:pre">		</span>   //用法2
    {  
        if( this->m_a == 0 && this->m_b == 0 ) return false;  
        return true;  
    }  
    /*輸入輸出運算子只能定義成友元函式*/  
    friend ostream& operator << ( ostream& os, num& n );  
};  
 ostream& operator << ( ostream& os, num& n )  
 {  
     os <<n.m_a <<"," <<n.m_b <<endl;  
     return os;  
 }  
  
int _tmain(int argc, _TCHAR* argv[])  
{  
    num a(1,2);  
    cout <<a;  
    num b(3,4);  
    cout <<b;  
    a = a + b;  
    cout <<a <<endl;  
    if(a)  
    {  
        cout << "a != 0" <<endl;  
    }  
    return 0;  
出處:http://blog.csdn.net/zipper9527/article/details/7619229

相關推薦

using關鍵字在C#的3用法

using 關鍵字有兩個主要用途:   (一).作為指令,用於為名稱空間建立別名或匯入其他名稱空間中定義的型別。   (二).作為語句,用於定義一個範圍,在此範圍的末尾將釋放物件。 (一).作為指令 1、用在名稱空間裡     using + 名稱空間名字,這樣可以在

c++ operator用法

c++中的operator 有兩種用法,一種是(operator overloading)運算子過載,一種是(operator casting)操作隱式轉換 例項程式碼如下: #include <iostream> using namespace std;

C++操作符operator用法

1.operator overloadingC++可能通過operator 過載操作符,格式如下:型別T operator 操作符 (),如比過載+,如下所示template<typename T> class A{public:     const T oper

C++operator用法

#include  "stdafx.h" #include <iostream>  #include <string>  using  namespace   std ;    /* C++中的operator主要有兩個作用,第一種:   操作符的過載,一是自定義物件型別的隱式轉換。 

C++operator用法

首先宣告,轉載自:http://blog.csdn.net/skdkjzz/article/details/45872801 轉換函式的名稱是型別轉換的目標型別,因此,不必再為它指定返回值型別;轉換函式是被用於本型別的數值或變數轉換為其他的型別,也不必帶引數 在寫

C++模板的typename的用法

在模板引數中,typename與class的使用是一樣,如: template<typename T> class A{}; template<class T>

c ++的operator用法

operator,它有兩種用法,一種是operator overloading(操作符過載),一種是operator casting(操作隱式轉換)。 1.operator overloading C++可通過operator 過載操作符,格式如下:型別T opera

奪命雷公狗C/C++-----5---include的用法

編寫 logs ima log -1 們的 頭文件 技術 我們 我們的include是有兩種用法的,如: 上面這種就是在頭文件方式進行引入的, include <> 括號的是包含系統文件的。。。。 還有一種,比如我首先寫個頭文件先,如下所示:

淺談C語言語句

我們都知道學習C語言都會遇到兩種常見的語句:選擇語句,迴圈語句。今天就讓我們一起來簡單看看這些語句的特點及功能吧! 選擇語句 if語句,用來實現兩個分支的選擇結構。 switch語句,用來實現多分支的選擇結構。 比如這裡有一個選擇語句: #include&

jspinclude 的用法

1.兩種用法 靜態include:  <%@ inlcude file =”header.jsp” %> 此時引入的是靜態的jsp檔案,它將引入的jsp中的原始碼原封不動地附加到當前檔案中,所以在jsp程式中使用這個指令的時候file裡面的值(即要匯入的檔案)不能帶多餘

jspinclude的用法

<%@ include file=” ”%> include指令 <jsp:include page=” ” flush=”true”/> include動作 主要有兩方面的不同: 1.執行時間上 <%@ include file=” ”

c++運算子過載形式以及常引用的使用

下面是c++運算子過載的兩種形式: 形式1: Point operator + (const Point& A,const Point& B) { return Point(A.x+B.x,A.y+B.y); } 形式2: ostream&

JAVAsuper的用法

http://www.cnblogs.com/rollenholt/articles/2033989.html 通過用static來定義方法或成員,為我們程式設計提供了某種便利,從某種程度上可以說它類似於C語言中的全域性函式和全域性變數。但是,並不是說有了這種便利,你便可以隨處使用,如果那樣的話,你

JSP的include的用法

我們都知道在jsp中include有兩種情勢,分別是     <%@ include file=” ”%>                                       ——指令元素     <jsp:include page=” ” flu

學習筆記-ListView控制元件的重新整理-setTag的用法

在ListView中,有時候需要動態更新其中某些控制元件的內容。更新的方法有以下幾個: 方法一:更新所有item的資訊 在更新後,直接呼叫adapter.notifyDataSetChanged();  但是這是最耗資源的做法。通常我們只想更新一個item中的其中某個vie

java for迴圈的用法

java 中的for迴圈巢狀的兩種用法,下面展示了示例程式碼:第一種:內外獨立迴圈,意思就是外層迴圈和內層迴圈互相干擾,內層迴圈不依賴於外層迴圈。例子:用"*"輸出一個正方形,程式碼如下:結果如下圖:第二種:內層迴圈依賴外層迴圈,程式碼及結果如下所示結果如下:總結:  第一種

【JAVA學習】Java迭代器Iterator遍歷的用法

迭代器的三個方法 2. 使用hasNext()檢查序列中是否還有元素,有則返回true。 3.使用remove()將迭代器新返回的元素刪除。 兩種迴圈方法: //使用for迴圈迭代 for (Iterator iter = l.iterator(); iter.h

C++ STLfind

1、algorithm中的函式 其呼叫形式為 find(start,end,value) start搜尋的起點,end搜尋的終點,要尋找的value值 容器的表示方法 find(a.begin(),a.end(),value) 陣列的表示方法 find(a,a+length

如何將c程式執行檔案打包入APK方法

如何將一個可執行的檔案打包到APK中,使用者在下載APK後直接使用,我現在想到了兩種方法:一種是將C程式直接打包到APK中,這種適合於獨立執行程式或者你手上沒有原始碼;另一種是將C程式作為庫然後使用JNI來呼叫C程式; 解壓縮即可看到APK如下目錄: |-Android

js——jspinclude的用法

1.兩種用法 <%@ include file=” ”%> <jsp:include page=” ” flush=”true”/> 2.用法區別 (1)執行時間上區別 <%@ include file=”relativ