私はthis答えに基づいて、CでOOPを試しています。私はかなり逃げることのできないものに出くわしました。私はCでthis
キーワードを使用する方法があった場合、それははるかに簡単かつ明確になると思いますオブジェクト指向のCプログラミング - 'this'キーワードに相当しますか?
struct foo {
int val;
int (*bar)(struct foo, int);
}
int foo_bar(struct foo mod, int val)
{
mod.val = val;
}
int main(void)
{
struct foo foo;
foo.bar = foo_bar;
foo.bar(foo, 8);
}
:この例を見てみましょう
struct foo {
int val;
int (*bar)(struct foo, int);
}
int foo_bar(int val)
{
this.val = val;
}
int main(void)
{
struct foo foo;
foo.bar = foo_bar;
foo.bar(8);
}
それは不可能に聞こえるが、いくつかの回避策があるかもしれませんそこに、C自体のOOPのようなビット。オブジェクト指向のCでthis
キーワードの機能を実現する方法はありますか?
C++のすべてのオブジェクトは、 "this"ポインタと呼ばれる重要なポインタを介して独自のアドレスにアクセスできます。 'this'ポインタは、すべての非静的メンバー関数呼び出しに隠された引数として渡されます。私は、cの動作を変更する必要がある場合、cの動作を変更する必要はないと思います。 –
これを使用する必要があるのであれば、なぜC++を使用するだけではないのですか? @SumitGeminiは、このポインタを手動で渡すことができると言った。 – brianxautumn