[問題] 非動態記憶體配置的問題
(使用dev c++)
class Cfather
{
protected:
int number;
char id;
public:
Cwin(int n=1,char i='A'):number(n),id(i)
{}
void show(void)
{
cout << " id = " << id << endl;
cout << "a() = " << a() << endl;
}
virtual int a()
{
return number;
}
};
class Child : public Cfather
{
private:
char i;
public:
Child(char ii='C'):i(ii)
{}
virtual int a()
{
return number+100;
}
};
int main()
{
Cfather *ptr; //我先宣告指向父類別的指標ptr
Child abc;
ptr=&abc; //再指向子類別
ptr->show(); //目前功能正常 a()=101,id=A
delete ptr; //故意刪除
ptr->show(); //執行結果 a()=1異常,不是要等於101嗎?,id=A正常
}
問題如下:
我知道abc這個物件不是使用動態記憶體配置,所以delete ptr 根本沒作用,
但我想再去觀察abc,所以再執行一次ptr->show()時,
我發現繼承而來的id功能正常,
可是a()卻出問題,
似乎子類別的a()無法正常改寫,
請問此問題出在哪個地方~謝謝指教。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.192.217.32
→
10/25 01:17, , 1F
10/25 01:17, 1F
推
10/25 01:20, , 2F
10/25 01:20, 2F
→
10/25 01:26, , 3F
10/25 01:26, 3F
→
10/25 01:30, , 4F
10/25 01:30, 4F
→
10/25 01:31, , 5F
10/25 01:31, 5F
→
10/25 01:32, , 6F
10/25 01:32, 6F
→
10/25 01:38, , 7F
10/25 01:38, 7F
→
10/25 01:44, , 8F
10/25 01:44, 8F
推
10/25 02:31, , 9F
10/25 02:31, 9F
→
10/25 02:32, , 10F
10/25 02:32, 10F
→
10/25 11:39, , 11F
10/25 11:39, 11F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章