-
auto obj1 = new QObject; auto child = new QObject(obj1); delete obj1; // child także jest wykasowany -
A jeszcze czemu pisze się *parent=nullptr , oznacza to że parent zawszę będzie mieć po prostu wskaźnik na 0 ? I dlaczego tak?
@kasttt333 To jest domyślna wartość. W C++ kiedy zadeklarujesz funkcję tak:
void foo(int x = 42)to kiedy zawołasz ją jakofoo(60)to x będzie miało wartość 60, a jeśli takfoo()to x będzie miało tą domyślną wartość 42.parentto jest wskaźnik na obiekt rodzica. Nullowy wskaźnik mówi, że obiekt nie ma rodzica. Pisze się tak żeby nie trzeba było pisaćnew QObject(nullptr)kiedy chcesz stworzyć obiekt bez rodzica, tylko wystarczynew QObjectalbonew QObject().Jeśli trzeba to rodzica można potem nadać albo zmienić za pomocą
setParent(cośtam);