C++在父類和子類之間進行轉型時腦抽做了個試驗

class baseA{
public:

};
class extdA:public baseA{
public:
	void fun(){
		cout << "extdA"<<endl;
	}
};
class extdB :public baseA{
public:
	void fun(){
		cout << "extdB" << endl;
	}
	baseA* change(int a){

	}
};
int main(int argc, char* argv[])
{
	baseA *ba = new extdA();
	extdB *ea = (extdB*)ba;
	ea->fun();
}

//out

extdB

class baseA{
public:
	virtual void fun(){
		cout << "baseA" << endl;
	}
};
class extdA:public baseA{
public:
	void fun(){
		cout << "extdA"<<endl;
	}
};
class extdB :public baseA{
public:
	void fun(){
		cout << "extdB" << endl;
	}
	baseA* change(int a){

	}
};
int main(int argc, char* argv[])
{
	baseA *ba = new extdA();
	extdB *ea = (extdB*)ba;
	ea->fun();
}

//out

extdA

不明所以,若有大神,還請指教

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章