2013-03-24 64 views
-3

我找不到我的錯誤在哪裏可以幫我嗎?預計錯誤;或}但我已經把它放在那裏我無法運行它雖然。你知道爲什麼嗎?驅動的課程關閉;儘管該程序仍然無法編譯。請指導我,謝謝一切正常,但無法運行:預期錯誤{或;

#include <iostream> 
    using namespace std; 
    class myBase{ 
      private: 
        int foodmoney; 
        int hobbymoney; 

        public: 
       void setdata(); 
      friend int caldata(); 
       }; 
       void myBase::setdata(){ 
         cout<<"Enter foodmoney :" ;cin>>foodmoney; 
         cout<<"enter hoobymoney:";cin>>hobbymoney; 
         } 
       int caldata(int sum,int foodmoney,int hobbymoney){ 
         cin>>foodmoney; 
         cin>>hobbymoney;   
         sum=(foodmoney+hobbymoney)/2; 
         return sum; 

          } 


     class Derivedclass:public myBase{ 
         int moneyforfood,moneyforhobby; 
         public: 
       int setmydrived(int moneyforfood,int moneyforhobby){ 
         cout<<"enter money for food(drived class)"<<endl; 
         cin>>moneyforfood; 
         cout<<"enter money for hobby(drived class)"<<endl; 
         cin>>moneyforhobby; 
         } 

         int calculatedrived(){ 

        int sumd=(moneyforfood+moneyforhobby); 
        cout<<"avg money on frived class "<<sumd<<endl; 
        }; 


        int main(){ 
        myBase baseobj; 
        baseobj.setdata(); 
        int caldata(); 
      Derivedclass obj; 
        int setmydrived(); 
        obj.calculatedrived(); 
         system("puase"); 

     } 
+1

固定用凹槽會告訴你,不** **一切是好的 – 2013-03-24 10:21:52

+2

以'一切correct'不作任何降神的問題。 .. – 2013-03-24 10:23:32

+1

@ user2203809正確縮進您的代碼!你現在擁有的是荒謬的。檢查這個鏈接的一些想法:[縮進樣式](http://en.wikipedia.org/wiki/Indent_style) – jrok 2013-03-24 10:25:35

回答

4

你錯過了最後一班定義的右括號(和分號)。

如果您使用一種理智的縮進風格,那麼這種事情更容易發現。

您還在返回某些東西的函數中缺少兩個返回語句。這是未定義的行爲。

1

您應該在課堂申報後添加;。例如:

class Whatever { 

}; 
+0

OP確實至少在我注意到的地方添加了分號。如果有理智的縮進,這當然會更容易檢查。 – 2013-03-24 10:22:58

0

有在你的代碼幾個誤區:

  • 你是缺少一個右括號(})爲class Derivedclass:public myBase

  • 暫停的拼寫是系統不正確(」暫停「)

  • int setmydrivedint calculatedrived函數應該是r去掉一個整數,但是你沒有返回一個整數。

我糾正了錯誤。下面的代碼將正常工作(見IDEONE示範):

#include <iostream> 
using namespace std; 
class myBase 
{ 
private: 
    int foodmoney; 
    int hobbymoney; 

public: 
    void setdata(); 
    friend int caldata(); 
}; 
void myBase::setdata() 
{ 
    cout<<"Enter foodmoney :" ;cin>>foodmoney; 
    cout<<"enter hoobymoney:";cin>>hobbymoney; 
} 
int caldata(int sum,int foodmoney,int hobbymoney) 
{ 
    cin>>foodmoney; 
    cin>>hobbymoney;   
    sum=(foodmoney+hobbymoney)/2; 
    return sum; 

} 


class Derivedclass:public myBase 
{ 
    int moneyforfood,moneyforhobby; 
public: 
    int setmydrived(int moneyforfood,int moneyforhobby) 
    { 
     cout<<"enter money for food(drived class)"<<endl; 
     cin>>moneyforfood; 
     cout<<"enter money for hobby(drived class)"<<endl; 
     cin>>moneyforhobby; 
        /*THIS FUNCTION DOESNOT RETURN ANY INT VAL*/ 
    } 

    int calculatedrived() 
    { 

     int sumd=(moneyforfood+moneyforhobby); 
     cout<<"avg money on frived class "<<sumd<<endl; 
     //return sumd; 
        /*THIS FUNCTION DOESNOT RETURN ANY INT VAL*/ 

    } 
}; 

int main() 
{ 
    myBase baseobj; 
    baseobj.setdata(); 
    int caldata(); 
    Derivedclass obj; 
    int setmydrived(); 
    obj.calculatedrived(); 
    system("pause"); 

} 
+0

請添加Downvote的原因。 – 2013-03-24 10:29:06

+0

我低估了,因爲當這個答案發布時,它只包含一段代碼。沒有解釋問題是什麼,因此也不是問題的答案。我看到你自己編輯了答案來添加一個解釋,但是當它第一次發佈時以及當我看到它的時候,這個問題就不存在了。如果您在將來避免降價,請不要單擊「提交」按鈕,直到您有完整的答案。 [downvote removed] – 2013-03-24 10:42:30

+0

@CodyGray:謝謝!是的,它應該得到Downvote,因爲最初我只是修復了可憐的縮進,修正了編譯錯誤並且沒有解釋地發佈了運行代碼。 然後我寫了解釋作爲編輯。實際上,在S.O.這裏不是很有經驗,所以有時候我會犯這樣的錯誤。再一次感謝你。 :) – 2013-03-24 10:46:35

相關問題