C ++ это указатель, скрытый аргумент в вызовах функций
У меня есть класс стека с членами и функцией с именем push.
class STACK
{
int data;
public:
void push(int x)
{
data=x;
}
}
Что делает C ++ для преобразования этого утверждения:
s1.push(3);
в
s1.push(this,3);
В основном мой вопрос, что происходит под капотом, чтобы генерироватьthis
указатель и передать его как скрытый аргумент?
На самом деле я пишу код на C. Моя цель - иметь программу, максимально приближенную к ООП. Для этого у меня есть указатели на функции в качестве членов структуры. Поэтому я хочу знать, возможно ли как-то отслеживать, какая структура называется функцией (например, "этот" указатель). Я нене хочу делать что-то вроде: s1.push (&s1,3); потому что это превосходит мои цели.
Можно ли конвертировать s1.push (3); на s1.push (&1,3); через подстановку MACRO