メンバを持つスタック クラスと push という関数があります。
class STACK
{
int data;
public:
void push(int x)
{
data=x;
}
}
このステートメントを変換するために C++ が行うことは次のとおりです。
s1.push(3);
に
s1.push(this,3);
this
基本的に私の質問は、ポインターを生成して隠し引数として渡すために内部で何が起こるかということです。
私は実際に C でコーディングしています。私の目的は、できるだけ OOP に近いプログラムを作成することです。このために、構造体のメンバーとして関数ポインターがあります。したがって、どの構造が関数と呼ばれるかを何らかの方法で追跡できるかどうかを知りたいです (「this」ポインターのように)。次のようなことはしたくありません: s1.push(&s1,3); それは私の目的に勝るからです。
s1.push(3); を変換することは可能ですか? s1.push(&1,3); に MACRO 置換経由