Могу ли я передать "this" в функцию в качестве указателя из конструктора класса и использовать его для указания на члены объекта до того, как конструктор вернет?
Безопасно ли это делать, если доступ к членам правильно инициализирован перед вызовом функции?
Как пример:
#include <iostream>
class Stuff
{
public:
static void print_number(void *param)
{
std::cout << reinterpret_cast<Stuff*>(param)->number;
}
int number;
Stuff(int number_)
: number(number_)
{
print_number(this);
}
};
void main() {
Stuff stuff(12345);
}
Я думал, что это не сработает, но, похоже, так и есть. Это стандартное поведение или просто неопределенное поведение у меня на пути?