第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

您好,假設(shè)CPen當(dāng)做函數(shù)參數(shù)出錯,該怎么辦?

您好,假設(shè)CPen當(dāng)做函數(shù)參數(shù)出錯,該怎么辦?

不負(fù)相思意 2021-12-30 11:07:25
自己寫了一個類,其中一個成員函數(shù)為void Display(CPen pen)。沒有調(diào)用到這個函數(shù)的時候編譯沒有問題。當(dāng)在程序中加入這個函數(shù)的調(diào)用this->Display(pen)的時候出錯,錯誤代碼為:error C2248:“CObject::CObject”: 無法訪問 private 成員(在“CObject”類中聲明)。請各位高手為我解惑補充一下,這個是個MFC應(yīng)用程序,我是用VS2008編程的,調(diào)用函數(shù)代碼為:CTest t;CPen pen(PS_SOLID, 1, RGB(255,0,0));t.Display(pen);一樓的回答我試過了,把這個自定義類改成繼承CWnd以后還是會出錯,新建一個繼承自CWnd的類寫一個Display(CPen pen)函數(shù)以后調(diào)用的時候也會出錯。補充下二樓的問題。這里的CPen不是其他類的私有成員變量。在Display函數(shù)定義的時候沒有出錯,只在調(diào)用函數(shù)的時候才出錯的,其他地方也沒有用到過這個pen變量。 三樓的回答我試過了,引入頭文件以后還是出錯的。而且我想,如果是沒有引入頭文件才出錯的話聲名的時候就應(yīng)該報錯啊,因為無法識別CPen是一個類。 四樓的回答是正解,各位看到的可以了解一下。
查看完整描述

2 回答

?
動漫人物

TA貢獻1815條經(jīng)驗 獲得超10個贊

CPen 要頭文件 #include <afxwin.h>

不是聲明了 CPen pen, 就可以調(diào)用。
要 CPen::CreatePen(....) 或 CPen::CreatePenIndirect(...)
建了對象后才真正有pen

“自己寫了一個類”, CPen pen 應(yīng)當(dāng)是屬于這個類的成員啦,這個類的constructor 要對它初始化。真正有pen后才能調(diào)用。

void Display(CPen pen){。。。} 屬于聲明,這里的 CPen pen 是形參。
調(diào)用函數(shù)時候,用實參,你的實參有問題,就會出錯。

“pen變量”-- pen 是 class, 不是簡單的變量,所以問題比較復(fù)雜。
CObject--CGdiObject--CPen



查看完整回答
反對 回復(fù) 2022-01-03
?
手掌心

TA貢獻1942條經(jīng)驗 獲得超3個贊

對象如果要作為參數(shù)來傳遞,必須定義拷貝構(gòu)造函數(shù)。但實際上很多對象的創(chuàng)建和銷毀過程是比較復(fù)雜的,不適合直接拷貝。如果你要用CPen作為參數(shù)傳遞,建議采用引用的方法:
void Display(CPen& pen)
{
}
或者
void Display(const CPen& pen)
{
}

查看完整回答
反對 回復(fù) 2022-01-03
  • 2 回答
  • 0 關(guān)注
  • 248 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號