Является ли следующий файл git в C ++? Производный класс выделяет базовый класс и приводит его к производному. Очевидно, что если производная (C) имеет членов, любой, кто обращается к членам через возвращенный указатель, потерпит неудачу. Но даже без членов в производной - это le git? UB?
struct B { int a; };
struct C : B {
static C* get() {
return static_cast<C*>(new B);
}
enum { X, Y,};
};
int main(){
C* c = C::get();
return c->X;
}