class parent
{
public:
parent();
~parent();
void parint()
{
cout << "這是父類的輸出函式" << endl;
}
private:
int a;
};
parent::parent()
{
}
parent::~parent()
{
}
class child :public parent
{
public:
child();
~child();
void parint()
{
cout << "這是子類的輸出函式" << endl;
}
private:
int b;
};
child::child()
{
}
child::~child()
{
}
void main()
{
child ch[3];
parent *p = NULL;
child *c = NULL;
p = ch;
c = ch;
p->parint();
c->parint();
p++;
c++;
p->parint();
c->parint();
system("pause");
}
為什么上面這個程式可以執行,而將parent類中的paint()函式改成虛函式的時候就不能執行?
uj5u.com熱心網友回復:
偏移量的問題,不加virtual,child大小為8,parent為4加上virtual,child大小為12,parent為8,偏移量導致的。。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/87269.html
標籤:基礎類
上一篇:SetUnhandledExceptionFilter()用法
下一篇:C++簡單編程
