Re: [問題] class的使用以及建構子的問題
※ 引述《liu2007 (薯)》之銘言:
: 我在define.h 檔案中定義了自己的 兩個struct
: 編譯之後的錯誤訊息
: error C2011: 'node' : 'struct' type redefinition
: error C2011: 'Pnode' : 'struct' type redefinition
: 我應該是沒有重複定義啊.....
: 第二個問題是:
: 可是我在class的.cpp檔裡面打 class_name::
: 出現的表單卻沒有建構子的這個item
: 一開始我以為是跟回傳值有關
: 但解構子卻有有在表單裡面
這兩個問題,都是忘記在 .h 加入 #ifndef 和 #endif 的原因。
讓編譯器重複讀取 define.h 和不知道 .h 已經結尾。
其實編譯器幫你載入了兩次 define.h,只是你沒有發現。
第一次是在 include.h, 而第二次是在引入 adrsQueue.h 又載入一次 define.h
正確的解法是 : 告訴編譯器說只要載入一次 define.h
#ifndef __TEST_H__ // __TEST_H__ 由 progrmmer 自己取名
#define __TEST_H__
//-----------------------------------------------------------------
struct node
{
char data;
struct node *left_child, *right_child;
};
typedef node dataNode;
//-----------------------------------------------------------------
struct Pnode
{
dataNode *point;
struct Pnode *next;
};
typedef Pnode adrsNode;
//-----------------------------------------------------------------
#endif
--
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 編輯: msc0953 來自: 219.87.141.226 (12/27 17:00)
推
12/27 17:07, , 1F
12/27 17:07, 1F
→
12/27 17:07, , 2F
12/27 17:07, 2F
→
12/27 17:08, , 3F
12/27 17:08, 3F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):