public:
// constructor and destructor
EmpInfo() {}
~EmpInfo() {}
public:
virtual void SetCountry(char* test) {cout <<"test";};
};
class OffshoreEmpInfo : public EmpInfo {
public:
char *m_country;
virtual void SetCountry(char* country)
{ m_country = country; }
};
int main()
{
OffshoreEmpInfo empInfo;
EmpInfo* test[1];//=new EmpInfo;
test[1]=&empInfo;
test[1]->SetCountry("Taiwan");
cout <<empInfo.m_country;
return 0;
}
謝謝了.......
--
[m [1;33m※ 來源:‧臺北技術學院紅樓資訊站 redbbs.cc.tit.edu.tw‧[FROM: 140.124.70.160] [m
>ģ
> ģoÓĩ{ĶĄĶpŠGrunŠšļÜ·|ĨXē{ģoÓĩ{ĶĄŠš°õĶæ§@·~ĩLŪÄ...
> ĶýŽO§âĨĶŠšconstructorļōdestructorĩđmark°_ĻÓīNĪĢ·|ĨXŋųĪF,
> ĻėĐģĪ@ÓclassŽÆŧōŪÉŦánnew°Ú,ŽOĪĢŽOĶb°ĩŦüžÐŠšclassģĢnnew°Ú???
>#include <iostream.h>
>class EmpInfo {
>
>public:
> // constructor and destructor
> EmpInfo() {}
> ~EmpInfo() {}
>
>public:
> virtual void SetCountry(char* test) {cout <<"test";};
>};
>class OffshoreEmpInfo : public EmpInfo {
>public:
> char *m_country;
> virtual void SetCountry(char* country)
> { m_country = country; }
> };
>int main()
>{
> OffshoreEmpInfo empInfo;
> EmpInfo* test[1];//=new EmpInfo;
> test[1]=&empInfo;
> test[1]->SetCountry("Taiwan");
> cout <<empInfo.m_country;
> return 0;
>}
>
test ŠšĪjĪpĨuĶģ 1, Ķ]Ķđ°ßĪ@ĶXŠkŠš ĨuĶģ test[0],
Ķý§AŦoĨÎ test[1] Ī~ģyĶĻŋųŧ~.
Ĩ|ēīŠšĪýÂÎ
--
ĨÍĐRŽOĶbķ·tĪΰ{Ã{ŠšĨú
首先我很懷疑錯誤是 constructor 和 destructor 所造成的,
或許是和你的程式內容有關.
在(1)這行:
既然你陣列只有一個元素, 那為何要宣告成陣列呢?
或許可以寫成:
EmpInfo *test;
對於陣列元素的設值也不是用你所mark掉的方式,
應該是 EmoInfo *test[2]={ new EmpInfo,new EmpInfo };
我想這樣或許就可以完成設值的目的了.
在(2)(3)這兩行:
你的陣列索引值好像超過範圍了.
若你的陣列只有一個元素的大小的話,
那第一個元素的索引值該是 0 才對,
你可以試著將這兩行改為:
test[0]=&empInfo;
test[0]->SetCountry("Taiwan");
--
* Origin: ★ 交通大學資訊科學系 BBS ★ <bbs.cis.nctu.edu.tw: 140.113.23.3>