メソッドの引数対メンバーは、C ++でのアクセス
質問
私は、保持クラスのメンバーと同じ名前で示される引数を受け取るメソッドを持つことができますか?私はこれを使用しようとしました。
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;
};
};
所属していません StackOverflow