• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Offtop parametry funkcji

0 głosów
129 wizyt
pytanie zadane 19 grudnia 2025 w Offtop przez TOWaD Mądrala (6,770 p.)

Nakładka na C, coraz bardziej się rozbudowuje  ;)

struct LabelOptions {
    int fontSize = 12;
    std::string anchor = "middle";
    std::string color = "black";
};

void addLabel(int x, int y, const std::string& text, const LabelOptions& opts = {}) {
    std::cout << "x=" << x << " y=" << y << " text=" << text
              << " fontSize=" << opts.fontSize
              << " anchor=" << opts.anchor
              << " color=" << opts.color << "\n";
}

addLabel(100, 200, "Hello"); // używa domyślnych wartości
addLabel(100, 200, "Hello", {16, "end", "red"}); // nadpisuje wszystkie
addLabel(100, 200, "Hello", {.anchor="end"});    // C++20: designated initializers

Normalnie wyścig zbrojeń z JS. Wiem, wiem język to biblioteki, a nie podstawowa składania. Ale już niekonieczna jest przemyślana kolejność argumentów. 

komentarz 23 grudnia 2025 przez TOWaD Mądrala (6,770 p.)
Dlaczego poruszam ten temat? Bo kiedyś w filmach Mirek Zelent, wymieniając zalety programowania obiektowego, mówił o możliwości dowolnej rozbudowy klasy bez zmieniania wcześniej napisanego kodu. Tymczasem stary proceduralny kod kompilowany jako C++20 z nowym OOP, daje bardzo podobną możliwość bez ruszania starego API.

✔ Proceduralny kod kompilowany jako C++20 — można rozszerzać bez zmiany API (DLL trzeba przebudować)

✔ Można dodawać klasy, konfiguracje, ukryte struktury w .cpp, domyślne argumenty, korzystać z modułów

✔ Stare wywołania funkcji pozostają nietknięte

✔ Ryzyko zmian minimalne, bo interfejs zostaje taki sam

Czyli na starych proceduralnych można nałożyć nakładkę OOP i uzyskując pełną kompatybilność wsteczną

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
2 odpowiedzi 717 wizyt
pytanie zadane 10 grudnia 2016 w C i C++ przez Jan Dobrakowski Użytkownik (580 p.)
0 głosów
1 odpowiedź 549 wizyt
0 głosów
2 odpowiedzi 504 wizyt
pytanie zadane 23 stycznia 2020 w Java przez Julek1425 Nowicjusz (230 p.)

93,672 zapytań

142,593 odpowiedzi

323,149 komentarzy

63,199 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...