2017-05-21 2 views
-2

C++では、ローカルクラスの変数はどのように宣言されていますか?私はC++を初めて使っていますが、Pythonの経験があります。私はC + +のクラスは、ローカル変数を識別する方法を持っている場合は、例えば、Pythonであなたのクラスのローカル変数は、自己とマークされているのだろうか。ローカル変数のためにこれに似たものを持っているか、それは完全に異なる何かを持っているんC++にはローカルクラス変数を識別する方法がありますか?

self.variable_name 

んC++:そう、彼らは次のようになるでしょうか?擬似コードでは、クラスの変数は次のようになります:

class Code: 
    public: 
      <some code> 
    private: 
      int self.variable 
      double self.other_variable 
      <more code> 

しかし、私は完全に間違っている可能性があります。前もって感謝します。

+6

私はこのトピックを非常に不明瞭であると主張しています。基本的な教科書を読むことをお勧めします。実際にはC++での初期化と見なされるものとはまったく異なるものを意味するために「初期化済み」という言葉を使用しているので、あなたの質問は実際は非常にあいまいです。あなたの "コード"は、あなたが意味することを明確にするのに役立ちません。基礎を学ぶのに何度か過ごしてください。いくつかの基本を理解すれば、あまり混乱しない質問をすることができます。 – Peter

+0

問題をより明確にするために質問を編集しました。 – Nightdra

+0

ようこそスタックオーバーフロー!あなたが[良いC + +の本](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)を使うことができるようなサウンドは、 – NathanOliver

答えて

0

これはかなり近いです!しかし、クラス内では、クラス変数は単に自分自身の名前を使用するため、class.variableではなくvariableとなります。

でよりよい一見のため

class Circle { 
    public: 
      Circle(double var, bool otherVar); //constructor 
      double getVariable(); //getter 
      void setVariable(double var); //setter 
      // you can put more functions here 

    private: 
      double variable; 
      bool otherVariable; 
      //you can put more functions here 
}; 

Circle::Circle(double var, bool otherVar){ 
    variable = var; 
    otherVariable = otherVar; 
} 

Circle::getVariable(){ 
    return variable; 
} 

Circle::setVariable(double var){ 
    variable = var 
} 

(また、あなたの関数は、それらを次のようにセミコロンを持っている必要があり、慣例により、これらの機能は、クラス自体、または別のファイル内の下で定義される傾向があることに注意してください)このトピックは、similar question/answer.を参照してください、またはコメントに記載されているように、C++で教科書を読むことを検討してください...

EDIT:私はこの質問に " class.variableはC言語での記述方法ではないため、コードをコンパイルできない可能性があります++。しかし、質問が初期化、宣言などを指しているのかどうかは分かりません。

-1

Effective C++(Scott Meyersが作成)を読むと、メンバ変数はctor initializerのときにinitになります。 ctorの後、すべての代入は代入であり、initではありません。このようにctorを書くことができます。

Circle(double value, bool isTrueFalse, <More Variables>) : class.variable(value), class.othervariable(isTrueFalse), ..<More Variables> //this is init. 
{ 
    class.variable = value; //this is assignment. not init. 
} 

C++ INIT注文は、アップサイドダウンではなく、CTORの初期化順序です。

private: 
     double class.variable; //First init; 
     bool class.variables;//Second init; 

ローカル変数initを使用する場合は、値をctorに渡します。

(C++)代入とinitは異なります。クラスローカルメンバーはctor Initializerでのみ初期化されます。 initは代入より高速です。 initはちょうど1つのcall ctorであり、終了します。代入は呼び出しctorであり、代入演算子はもう1つです。パフォーマンスのためにctor Initializerを使用する必要があります。

関連する問題