Wpis z mikrobloga

#programowanie #cpp

To prawdopodobnie jest głupie pytanie ale czy takie coś jest zdefiniowane?

const DBRow& DBTable::seeRow(qint32 row_id) const {

if (this != Q_NULLPTR) {

for (DBRow const*const row : rows) {

if (row->id == row_id) {

return *row;

}

}

}

return *new DBRow("empty");

}

Tzn. odnoszę się do wskaźnika który jest pusty i nie sprawdzam czy jest pusty bo jeżeli jest pusty - zwraca nowy obiekt o nazwie "empty". Działa elegancko ale nie chciałbym się zaskoczyć albo przyzwyczajać do rozwiązań które nie są takie fajne jak mi się wydaje...

Edit: pododawałem te niepotrzebne klamerki bo Wykop nie rozumie spacji...
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@ponton: wiem, że tak to działa ale sądziłem, że w jakiś sposób definicje są przechowywane osobno od objektów (nie znam się na tym jak jest zbudowany język od bardzo wewnętrznej strony - pisze okienkowe aplikacje które mają działać i na razie jakoś idzie mimo, że mój kod to pewnie koszmar każdego kto miałby go kiedyś oglądać :P) i można wykonać taki trick. Nie wiem czy to takie złe w porównaniu
  • Odpowiedz