C++類指針指向子類還是基類的判斷方法
class animal
{
public:
animal()
{
cout<<"hello kitty"<
}
virtual void eat()
{
cout<<"eat bianbian"<
}
};
class plant:public animal
{
public:
plant()
{
}
void eat()
{
cout<<"haha"<
}
};
void fn(animal *pan)
{
pan->eat ();
}
void main()
{
plant st;
animal*pan; //一個(gè)指向animal的指針
pan=&st; //把這個(gè)指針換成plant的類空間
fn(pan);//把這個(gè)被替換的指針賦給fn(),它貌似指向了,然后通過這個(gè)函式指向eat()
}
//函數(shù)中有兩個(gè)類,而且都有eat()函數(shù)最后到底指向哪個(gè)eat()呢!
//答:指向基類。如果想指向子類,辦法是有的!就是把基類的eat()函數(shù)虛化。加virtual前綴即可!
// `(*∩_∩*)
本文引用地址:http://butianyuan.cn/article/201612/324447.htm關(guān)鍵詞:
C++類指針子類基
相關(guān)推薦
技術(shù)專區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號(hào)放大器
評論