運算子的過載程式在VC6 0中遇到的問題

2021-08-08 04:30:15 字數 600 閱讀 1720

用vc6.0編寫乙個「+」運算子的過載程式,程式中用到了友元函式,程式執行時出現了下面的錯誤:

**如下:

#include

using namespace std;

class complex        

//complex表示複數 ;

complex::complex()

complex::complex(double r,double i)

//注意,這裡作為友元函式,不屬於complex這個類,

//但是是這個類的朋友,能訪問這個類的私有變數,記得別寫「域操作符」::

complex operator+(complex &c,complex &d)

void complex::print()

int main()

在網上查了之後,看到別人說這是vc裡面關於友元函式無法訪問類的私有成員的乙個經典bug,有幾種解決辦法,我用了其中的一種:在類

complex的定義前加了2條語句:

你必須在類complex定義之前先宣告它的友元函式,但這些友元函式都是類complex的友元,所以在宣告它們之前又要再宣告一下class complex。

在VC6 0中的除錯

3.設定資料斷點,和上面不同也就是表示式,換成了乙個全域性變數,並且在斷點對話方塊中,選中data選項卡,然後輸入全域性變數名,那麼當這個全域性變數的值發生給變時,程式就會中斷。4.設定訊息斷點 就是指斷點與訊息及相應的訊息處理函式 當某個訊息處理函式處理了乙個斷點訊息,程式將在訊息處理函式處中斷。...

在VC 6 0中的單步除錯

在vc 6.0中的單步除錯 除錯重要的幾個鍵 f9在當前游標所在的行下斷點,如果當前行已經有斷點,則取消斷點。f5除錯狀態執行程式,程式執行到有斷點的地方會停下來。f10單步執行程式。ctrl f10執行到游標所在行。f11和f10的區別是,如果當前執行語句是函式呼叫,則會進入函式裡面。shift ...

C 中的運算子過載(一) 運算子過載的概念

概述 運算子過載,就是對已有的運算子重新進行定義,賦予其另一種功能,以適應不同的資料型別。運算子過載 operator overloading 只是一種 語法上的方便 也就是它只是另一種函式呼叫的方式,只是為了方便我們使用,運算子只能運算內建的資料型別,對於自定義的資料型別不能運算,所以我們可以過載...