Общий указатель работает без присвоения памяти классу Win.Общий указатель работает без назначения
Код:
class Win
{
public:
void disp()
{
//Do something
}
};
int main()
{
std::shared_ptr<Win> sharedptr;///holds null pointer
sharedptr->disp();//// why its working
}
Почему звонит выше функции без назначения памяти к нему. Может ли кто-нибудь помочь мне в этом?
Это неопределенное поведение, все может произойти, включая поведение, которое вы наблюдаете. –
Возможный дубликат [Как может компилятор C++ оптимизировать неправильное иерархическое downcast, чтобы вызвать реальное неопределенное поведение] (http://stackoverflow.com/questions/10278199/how-can-c-compiler-optimize-incorrect-hierarchical-downcast-to- cause-real-unde) – BoBTFish
почему это не должно быть? Функция не использует переменные-члены. – user463035818