質問

私は、保持クラスのメンバーと同じ名前で示される引数を受け取るメソッドを持つことができますか?私はこれを使用しようとしました。

    class Foo {
        public:
            int x, y;
            void set_values(int x, int y)
            {
                x = x;
                y = y;
            };
    };

...動作するようには思えません。

のJavaScriptのthisやPythonのselfに似た私が働いているその名前空間、インスタンスにアクセスする方法はありますか?

役に立ちましたか?

解決

これは、メンバ変数の命名規則を使用して混乱のこの種のを避けるために、一般的に良いアイデアです。例えば、camelCaseWithUnderScore_は非常に一般的です。そうすればあなたはまだ大声で読むことが少しおかしいですが、画面上でかなりあいまいでx_ = x;、で終わるでしょう。

は、をした場合、絶対にの変数と引数を持っている必要があり、あなたは具体的にはthisポインタを使用することができ、同じように呼ばれます:

class Foo {
    public:
        int x, y;
        void set_values(int x, int y)
        {
            this->x = x;
            this->y = y;
        }
};

はところで、クラス定義の末尾のセミコロンに注意してください - 。正常にコンパイルするために必要とされる。

他のヒント

はい、あなたは(C ++でのポインタである)「この」キーワードを使用して、これを書くことができる必要があります:

class Foo {
    public:
        int x, y;
        void set_values(int x, int y)
        {
            this->x = x;
            this->y = y;
        }
}

C++で現在のインスタンスがconstポインタthisによって参照されます。

class Foo {
    public:
        int x, y;
        void set_values(int x, int y)
        {
            this->x = x;
            this->y = y;
        };
};
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top