程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> dynamic- Dynamic_cast C++類與對象問題 繼承和多態問題,求大神修改

dynamic- Dynamic_cast C++類與對象問題 繼承和多態問題,求大神修改

編輯:編程綜合問答
Dynamic_cast C++類與對象問題 繼承和多態問題,求大神修改

Dynamic_cast
Total: 65 Accepted: 22
Time Limit: 1sec Memory Limit:256MB
Description
Three classes A, B and C are shown below:
class A {
public:
virtual ~A() {};
};
class B: public A {};
class C: public B {};
You are to implement a function string verify(A *), such that it returns "grandpa" if the passed-in argument points to a class A object, and "father" for a class B object , "son" for a class C object.
Your submitted source code should include the whole implementation of the function verify, but without any class defined above.
No main() function should be included.
以下是我的代碼,請問哪裡錯了,求大神修改 要用 dynamic_cast 做

string verify(A a){
A*p =& a;
A*a1=dynamic_cast<A
>(p);
B*b1=dynamic_cast(p);
C*c1=dynamic_cast(p);

if(a1!=NULL){
    return "grandpa";
}
if(b1!=NULL){
    return "father";
}
if(c1!=NULL){
    return "son";
}

}

最佳回答:


  • 1.後面兩個dynamic_cast沒有類型,不知道是你沒有用代碼格式問題還是你漏了。
  • 2.a轉a就不要cast了吧
  • 3.判斷要從小到大。
if(c1!=NULL){
    return "son";
}
else if(b1!=NULL){
    return "father";
}
else /*if(a1!=NULL)*/{
    return "grandpa";
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved