[問題] 宣告外部類別使用
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 )
( 未必需要依照此格式,文章條理清楚即可 )
遇到的問題: (題意請描述清楚)
外部類別的宣告使用
希望得到的正確結果:
能在除建構子以外的地方使用外部類別
程式跑出來的錯誤結果:
在標頭檔宣告外部類別那行出現
*******.h(35) : error C2143: 語法錯誤 : 遺漏 ';'
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
vc++ windows
有問題的code: (請善用置底文標色功能)
示意程式碼如下
標頭檔: Dog.h
內容:
class Dog
{
public:
Dog();
String getHoskeyName();
private:
Hoskey *dog1;//註1
};
class Hoskey //也是在Dog.h內
{
public:
Hoskey();
String getName();
private:
String name;
};
原始檔: Dog.cpp
Dog::Dog()
{
dog1=new Hoskey;//註1-1
Hoskey *dog1=new Hoskey;//註2
dog1->getName();//註2-1
}
String Dog::getHoskeyName()
{
return dog1->getName();//註1-2
}
Hoskey::Hoskey()
{
name="FLASH"
}
String Hoskey::getName()
{
return name;
}
補充說明:
在Dog裡面要呼叫Hoskey的函式getName()
有兩個狀況
錯誤的 有註1,1-1,1-2,沒註2,2-1
為了讓Hoskey能讓Dog的全域使用,能在Dog的函式呼叫Hoskey
在Dog的定義中宣告Hoskey (註1)
但是卻不能宣告
不是明明將Hoskey定義在同一檔案裡了嗎???
正確的 有註2,2-1 沒註1,1-1,1-2
只能在Dog的建構子中宣告Hoskey並使用它的函式
但在其他Dog的函式裡不能使用Hoskey
有人可以幫忙嗎??
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.56.71.90
※ 編輯: goodwise 來自: 61.56.71.90 (05/07 10:00)
推
05/07 09:59, , 1F
05/07 09:59, 1F
→
05/07 09:59, , 2F
05/07 09:59, 2F
→
05/07 10:00, , 3F
05/07 10:00, 3F
→
05/07 10:05, , 4F
05/07 10:05, 4F
※ 編輯: goodwise 來自: 61.56.71.90 (05/07 10:05)
→
05/07 10:06, , 5F
05/07 10:06, 5F
推
05/07 10:16, , 6F
05/07 10:16, 6F
→
05/07 10:16, , 7F
05/07 10:16, 7F
→
05/07 10:17, , 8F
05/07 10:17, 8F
→
05/07 10:30, , 9F
05/07 10:30, 9F
推
05/07 10:36, , 10F
05/07 10:36, 10F
→
05/07 10:37, , 11F
05/07 10:37, 11F
→
05/07 10:38, , 12F
05/07 10:38, 12F
→
05/07 10:38, , 13F
05/07 10:38, 13F
→
05/07 10:39, , 14F
05/07 10:39, 14F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章