メンバ関数では、呼び出し元のデータ型にアクセス:他の言葉で私はこのコードのような何かをしたい
myType a;
a->foo();
void foo()
{
cout << a->bar();
}
void bar()
{
cout << a->bar2();
}
void bar2()
{
cout << a->bar3();
}
、メンバ関数が呼び出されると、我々は、元の発信者を使用することができますか?
メンバ関数では、呼び出し元のデータ型にアクセス:他の言葉で私はこのコードのような何かをしたい
myType a;
a->foo();
void foo()
{
cout << a->bar();
}
void bar()
{
cout << a->bar2();
}
void bar2()
{
cout << a->bar3();
}
、メンバ関数が呼び出されると、我々は、元の発信者を使用することができますか?
あなたが欲しい:
cout << this->bar();
あるいは、もっと単純に
cout << bar();
This IBM C++ documentationはかなりよくそれを説明しています。見てみましょう。
#include <iostream>
class myType {
void foo()
{
std::cout << bar();
}
void bar()
{
std::cout << bar2();
}
void bar2()
{
std::cout << bar3();
}
};
...と、例えば中:あなたはおそらくやろうとしているが、このようなものは何
主な方法:クラス内
int main(int argc, char** argv)
{
myType a;
a->foo();
}
、あなただけの彼らの名前で同じクラスのメソッドを参照することができ、そして、彼らは、元のメソッドと同じオブジェクトで呼び出されます!同じオブジェクトのメソッドを参照していることを強調したい場合は、例を使用してください。 bar()
の代わりにthis->bar()
;クラスメンバを隠す他の名前(メソッドパラメータなど)がある場合はが必要ですが、はを常に使用することができます。
私にはあなたが実際に尋ねていることは明らかではありません - クラスmyTypeのメソッドであると思われますか?しかし、あなたは「元の呼び出し元」(変数 'a')と呼ばれるものを参照するのに' this'を使うことができます。 – codeling
コード例を明確にしてください。それはコンパイルされず、あなたが実際にやりたいことを明確に述べていません。 – Alex
あなたがしようとしていることをより良く説明してください。 「バー」が定義されている場所を教えてください。 –