Czemu jak mam:
type a=b;
to operator= wykonuje się domyślny pomijając moją implementację, a kiedy mam:
type a;
a=b;
to wykonuje się tak jak chcę?
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#algorytmy #cpp Klasyka gatunku: Mam pytanie dotyczące Quick Sorta. Napisałem implementacje z tego schematu blokowego. Rzecz prozaiczna ale co jest parametrem funkcji quicksort w rekurencyjnym wywołania funkcji ? (tutaj wywala błąd ).
pytanie nr 2. Gdzie mogę zaimplementować licznik porównań ? trochę cięższy temat do którego nie wiem jak podejść. Z góry dziękuje :3
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Florian3k: okej punkt pierwszy zrobiony, ( bardziej techniczne problemy wystąpiły ). Ale nie jestem pewien czy dobrze wstawiłem liczniki. Pierwszy w punkcie gdzie jest pierwszy warunek zamieniający tab[i] z tab[j], kolejne dwie przy wywołaniu funkcji wtedy gdy przechodzi do prawego i lewego podzbioru. I Z tego co wiem nie będzie "książkowej " złożoności obliczeniowej (nlogn) bo pivot jest wyznaczany z środka a nie losowo tak ?
  • Odpowiedz
Mirasy pomocy! Dostałem takie zadanie do obczajenia, ale nie wiem gdzie zacząć...

struct MyType {
MyType( const MyType& rhs);
MyType( MyType& rsh);
};
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@sokytsinolop: Chodzi po prostu o to, że masz w klasie/strukturze referencję - ta nie może być niezainicjalizowana przez co masz, prawidłowo, usunięty domyślny konstruktor. Należy zrobić w tej strukturze konstruktor przynajmniej przyjmujący referencje do Team i przypisujący ją do składowej team w liście inicjalizującej konstruktora.
  • Odpowiedz
#programowanie #opengl #cpp #pytaniedoeksperta
Próbuję napisać głupiego hello worlda w OpenGL żeby wyświetlić cokolwiek ale ciągle jest wyświetlane puste białe okno. Poszukałem już trochę takich tematów na necie ale błędy w kodzie które tam były u mnie nie występują, nawet wziąłem taki kod żywcem z jakiegoś tutoriala i dalej nic. Budowanie zarówno na debug jak i na release daje taki sam rezultat.
onionomous - #programowanie #opengl #cpp #pytaniedoeksperta
Próbuję napisać głupiego...

źródło: comment_zehMsXQTgjTXnnXR8MT1BErp2p39PPfr.jpg

Pobierz
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Jojne_Zimmerman: Ok, rozwiązałem chyba zagadkę. Wychodzi na to że od OpenGL 3+ trzeba pisać własne shadery, w poprzednich wersjach były jakieś "wbudowane". A że przykłady na zajęciach mieliśmy w jakiejś antycznej wersji OpenGL to nie mieliśmy ani słowa o pisaniu shaderów, stąd myślałem że nie trzeba ( ͡° ͜ʖ ͡°) dzięki za pomoc
  • Odpowiedz
Pytanie z C++:
Jaka jest różnica (poza wyglądem oczywiście) między nawiasami okrągłymi (up) a nawiasami klamrowymi {down} na liście inicjalizacyjnej konstruktora?

class Wykop
{
Wykop(int up, int down) : wykopali(up), zakopali{down} {}
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@enceladus71 No tak to ma działać. Bo podczas operatora=, szukany jest konstruktor najbardziej pasujący i dla jednej wartości int uruchomi z jednym parametrem int, ciekawe, że jak dasz test t3 = 5.5 to uruchomi też konstruktor w intem i przypisze 5. Aby zapobiec takim konwersją, do konstruktora trzeba dodać słówko explicit i samemu dodać operatory konwersji np. operator double() itp.
  • Odpowiedz
@FantaZy: Deklarujesz w standardowy sposób, tak jak każdą inną zmienną, tzn TYP NAZWA (= WARTOŚĆ); Nic szczególnego się nie dzieje.
A dlaczego musi tam być ten typ, skoro już raz został podany? Bo w takim razie zapis A::counter = 1; byłby niejednoznaczny - nie byłoby wiadomo czy to jest deklaracja i przypisanie, czy tylko przypisanie.
  • Odpowiedz
Chciałbym zapisać w 2B (bajtach) floata. Wiem, że ten typ danych ma rozmiar 4B, jednak interesuje mnie precyzja do dwóch miejsc po przecinku (powiedzmy przedział -1.00 do 1.00) i oszczędność pamięci. Czy jest jakiś elegancki sposób na zapis takiej informacji w ten sposób?

Można dodać 1 i np. pomnożyć wartość przez 100, a później zrobić to w odwrotny sposób by odzyskać informację, ale to dosyć prymitywne rozwiązanie.

#programowanie #cpp
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Kaczus2B: na 2 bajtowym floacie nie przeprowadzisz żadnych obliczeń, bo procesory tego nie obsługują.

W ogóle po co ci ta oszczędność 2 bajtów, wygląda mi to na XY problem.

The XY problem is asking about your attempted solution rather than your actual problem. This leads to enormous amounts of wasted time and energy, both on the part of people asking for help, and on the part of those providing help.
  • Odpowiedz
@simia: Na przykład Ubuntu ma w repo nadal wersję 5.
No ale nie zmienia to faktu, że faktycznie ogólnie powinno się stosować nullptr.
  • Odpowiedz
Mirasy, jak walidować TextFieldy w qml? Mam forma, takiego jak na załączonym obrazku. Chciałbym zrobić tak, że jeżeli TextField jest pusty lub występuje błąd przy walidacji przycisk Akceptuj nie pojawia się. W jaki sposób mogę to uzyskać? Póki co napisałem coś takiego: https://pastebin.com/E9buhbEv . W doc dotyczących qt quick jest strasznie mało odnośnie walidacji.

Z góry dziękuje Mirony za pomoc.

#cpp #qt5 #qt #naukaprogramowania
GaHee - Mirasy, jak walidować TextFieldy w qml? Mam forma, takiego jak na załączonym ...

źródło: comment_3ffMu9ldjSdcviWkK9SMO82Peb4m4Mc7.jpg

Pobierz
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@GaHee: O widzę że Qt Quick Controls 2, prawidłowo ( ͡° ͜ʖ ͡°).

Ja robię tak że opakowuję TextFielda jakiś komponent i dorabiam przykładowo tam taką
  • Odpowiedz
@GaHee: No ja mam to jeszcze zrobione w GroupBox i całym group box migam a miganie jest trywialne:

SequentialAnimation {
        id:blinkRed
        ColorAnimation {
  • Odpowiedz
'W programie zdefiniuj 3 klasy. Każda klasa powinna posiadać publiczne metody umożliwiające operowanie na jej prywatnych danych, w tym publiczne konstruktory nadające wartości danych.'

Czyli, że co mam zrobić? Zrobiłem 3 klasy public. Ktoś ma moc objaśnić mi to polecenie?

#naukaprogramowania #cpp
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@zortabla_rt: naucz się poprawnie określać terminy, bo to cholernie ważne. Niema czegoś takiego jak klasa public, po angielsku public class, czyli klasa publiczna oznaczało by że klasa jest zdefiniowana w jakiejś przestrzeni nazw (namespace, class) jako publiczna, o czym pewnie nic nie ma w zadaniu.

Co do zadania to tak jak @Kramarz napisał, poczytaj o koncepcji stterów i getterów oraz dodatkowo o liście inicjalizacyjnej w konstruktorach.
  • Odpowiedz