2016-08-16 4 views
-4
#include<iostream> 
using namespace std; 
class a 
{ 
    public: 
     a():a2(1), 
      b2(2), 
      c2(3) 
     { 
      cout <<"waruup\n"; 
     } 
     ~a() 
     { 
      cout<<"Its over brah\n"; 
     } 


     void kappa() 
     { 
      cout << a2 <<endl; 
     } 

     void kappa1() 
     { 
      cout << b2 <<endl; 
     } 

     void kappa2() 
     { 
      cout << c2 <<endl; 
     } 
}; 

main() 
{ 
a ao; 
a *lol=&ao; 
//ao.kappa(); 
lol->kappa(); 
lol->kappa1(); 
lol->kappa2(); 

} 

なぜ動かないのですか?私はa()でエラーが発生します:a2(1)、 間違っていますか? Isntはa2 = 1とし、void kappaが呼び出されたときに1を出力すると仮定しています。プログラミングやC++にはかなり新しく、特にnoobyの間違いを許します。メンバーイニシャライザのリストがうまくいかない理由を知るために試してください

+1

「エラーが発生しました」「どのようなエラー? – DimChtz

+0

あなたはクラスメンバーをどこに宣言しますか? – NathanOliver

答えて

3

フィールドa2,b2およびc2を初期化して使用する必要があります。

#include<iostream> 
using namespace std; 
class a 
{ 
    // declaretion of fields 
    int a2, b2, c2; 

    public: 
     a():a2(1), 
      b2(2), 
      c2(3) 
     { 
      cout <<"waruup\n"; 
     } 
     ~a() 
     { 
      cout<<"Its over brah\n"; 
     } 


     void kappa() 
     { 
      cout << a2 <<endl; 
     } 

     void kappa1() 
     { 
      cout << b2 <<endl; 
     } 

     void kappa2() 
     { 
      cout << c2 <<endl; 
     } 
}; 

// don't omit the return type of functions 
int main() 
{ 
    a ao; 
    a *lol=&ao; 
    //ao.kappa(); 
    lol->kappa(); 
    lol->kappa1(); 
    lol->kappa2(); 

} 

また、C++では関数の戻り値の型を省略しないでください。

+0

どうすればいいのかわかりません。どうすればいいのかわかりません。 – Tim

+0

私の編集を気にしていますか? C++はJavaではありません。 – Bathsheba

+0

@Bathsheba [GCCは "フィールド"(http://melpon.org/wandbox/permlink/OCNL6lFEoVRvm793)と言ったので、私はそれに従った。 – MikeCAT

関連する問題