1樓:一事定成功
在檔案讀取的時候大可不必這麼複雜,直接利用》可以很方便的進局早亮行輸入。
至於指標的實現,是先建立乙個指標向量,然後每次在判斷型別後,動態建立子類對桐寬象,並且將物件位址存到指標向量中去,就可以實現多型了,下面是我寫的一段**睜拆,經執行是正確的,這只是主函式中的**,我就以園和矩形為例,類的定義與你大致相同:
int main(){
ifstream file;
char ch;
int x,y,r;
int x1,y1,x2,y2;
vectorv;
shape* p;
while(file>>ch){
if(ch=='c'){
file>>x>>y>>r;
p=new circle(x,y,r);
p);if(ch=='r'){
file>>x1>>y1>>x2>>y2;
p=new rectangle(x1,y1,x2,y2);
cout<<"there are "cout<<(it)->area()希望對你有幫助^ ^
2樓:網友
這個要用到虛擬函式,參考譚浩強的c++。
使用基類的指標可以訪團鏈問派生類的物件。例如。
#include
using namespace std;
class base
public:
virtual void show()
cout<<"base"return 0;
在你的程式裡面,你可以做個判斷,如果輸入c,就讓基類的指標指向派生類圓物件,如果塌滲孫輸入r,指向派生類矩形物件就可以了。
c++執行時多型的選擇題,幫幫新手吧
3樓:匿名使用者
1全部答案是d
解釋:a:建構函式不能宣告為虛擬函式,但在建構函式中可以呼叫虛擬函式。在建構函式或解構函式中呼叫虛擬函式,將採用靜態聯編。
b,c,d:建構函式不能宣告為虛擬函式,但解構函式可以宣告為虛擬函式。
當基類的解構函式宣告為虛擬函式時,無論派生類是否使用virtual關鍵字說明,派生類的解構函式一定是虛擬函式,而且,如果滿足動態聯編的其他條件,對虛解構函式的呼叫將採用動態聯編。
4樓:小何才露尖尖角兒
答案是d
理由:虛擬函式採用的是虛呼叫,所謂虛呼叫就是指不在編譯的時候確定應該呼叫父類或者子類的哪個函式,即是遲後聯編,而我們呼叫構造時必須物件建立一開始就構造物件,所以建構函式不能宣告為虛擬函式。
換句話說,虛擬函式和非虛擬函式的主要區別叫做動態聯編,或者叫做遲後聯編。1樓說的完會不對。。
5樓:網友
答案是d
理由:虛擬函式採用的是虛呼叫,所謂虛呼叫就是指只用部分資訊即可呼叫該函式,而我們呼叫構造時必須知道構造物件的完整資訊,所以建構函式不能宣告為虛擬函式。
求初中數學綜合題分析初中數學添輔助線的原則
要使分散的元素能集中,要使學過的定理能使用.即要使證題中已知與求證之間分散的元素盡量集中在同乙個圖形中 最好能集中在乙個三角形中 並使已掌握的定理能夠盡量有用武之地.先給分後發 簡介 要使分散的元素能集中,要使學過的定理能使用.即要使證題中已知與求證之間分散的元素盡量集中在同乙個圖形中 最好能集中在...
資料庫原理試題的最後一題綜合題,求資料庫原理題 答案 題目如下 儘快 30
題目中文字性的描述中,最關鍵起主導的那個屬性,叫主屬性或叫主關鍵字。其它屬性與它存在著相互依賴的關係,有一個關鍵屬性就對應著一串與其相依賴的屬性。去掉這個屬性其它屬性也就沒有存在的必要,這種依賴關係好像數學函式中的x,y一樣,有一個x,就有一個y對應,故叫函式依賴。主關鍵字還有一個重要的特點就是它必...
關於C 多型性的問題
力波鴻 你應該把main裡的 someone name name 改為 beauty someone name name 因為你用的是person指標,person someone 你若不註釋掉beauty裡的name,someone name會指向person的name,而不是beauty裡的na...