《mfc程式設計師的wtl教程》第乙個例程在於說明atl的原理,其**如下:
#include templateclass b1
protected:
void printclassname()
;class d2 : public b1{
public:
protected:
void printclassname()
{std::wcout<<_t("this is d2")《實際上這段**是有問題。在vs 2005(帶sp1)環境編譯下出現以下編譯錯誤:
d:\wtllearn\lesson1\lesson1\lesson1.cpp(14) : error c2248: 'd2::printclassname' :cannot access protected member declared in class 'd2'
1> d:\wtllearn\lesson1\lesson1\lesson1.cpp(38) : see declaration of 'd2::printclassname'
1> d:\wtllearn\lesson1\lesson1\lesson1.cpp(34) : see declaration of 'd2'
1> d:\wtllearn\lesson1\lesson1\lesson1.cpp(12) : while compiling class template memberfunction 'void b1::sayhi(void)'
1> with
1> [
1> t=d2
1> ]
1> d:\wtllearn\lesson1\lesson1\lesson1.cpp(35) : see reference to class templateinstantiation 'b1' being compiled
1> with
1> [
1> t=d2
1> ]
問題在於基類b1無法訪問派生類d2的保護許可權的成員函式。解決辦法是將
d2:: printclassname
函式改為public
許可權。我想atl中所有需要過載的函式應該都是public的。
《MFC程式設計師的WTL教程》第乙個例程的乙個錯誤
mfc程式設計師的wtl教程 第乙個例程在於說明atl的原理,其 如下 include templateclass b1 protected void printclassname class d2 public b1 public protected void printclassname std...
第乙個MFC程式
1.mfc使用c 語言把windows sdk api函式包裝成了幾百個類 2.最重要的兩個mfc類 2 cframewnd 3.兩種方法 1 乙個繼承 2 兩個繼承 4.具體實現 4.0vs設定 1 正常建立控制台程式 2 設定專案屬性 在常規中 a.將mfc的使用改為 在靜態庫中使用mfc 動態...
來自程式設計師的第乙個部落格
哈哈,第一次寫部落格好緊張。別人說做作為一名合格的程式設計師一定要有自己的部落格。以後我會在這裡記錄的我的學習之路。其實做程式設計師也有兩年了,一直沒有寫過部落格 不合格 最開始做程式設計師時,是在一家外包公司,天天寫靜態頁面,感覺自己完全學不到東西。所以我辭職了,在成都溫江又找了一家初創型公司,前...