Mam wrażenie, że inicjalizowanie zmiennych składowych obiektu w #cpp jest zbyt ograniczające. Wszystko musi być wywołane w liście inicjalizacyjnej, a przez to nie możemy wykonać jakichś prostych obliczeń, a konstruktor obiektu składowego wywołać z ich wynikiem. Są jakieś dziwne hacki z używaniem lambd, ale nie jest to ani czytelne, ani eleganckie.
Obecnie w takiej sytuacji zmusza się programistów albo do rezygnowania z konstruktorów i używania do inicjalizacji zwykłych funkcji, albo
  • 16
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@frogi16: możesz przypisywać wartości domyślne bezpośrednio w deklaracji zmiennych składowych klasy w deklaracji klasy, możesz wołać w konstruktorze inne konstruktory, możesz stosować sensowne wartości domyślne via default ctory nadając sensowne wartości później aka "lazily".

Poza tym, jeżeli klasa ma tak dużo pól (no właśnie, ile?), że lista inicjalizacyjna staje się niewygodna/nieczytelna, to może czas na przeniesienie części składowych do osobnej klasy/struktury?
  • Odpowiedz
@Saly: no na przykład niech będzie jakiś niewielki program, którego proste GUI mamy podzielone na kilka mniejszych "kontenerów". Dość logiczne jest, żeby każdy z tych kontenerów otrzymywał w konstruktorze takie podstawowe parametry jak np. swoja wielkość, tak żeby sam zarządzał rozłożeniem już tych podstawowych elementów w swoim wnętrzu. I dopóki to jest jakiś trywialny przypadek, że szerokość kontenera to połowa szerokości okna to spoko, inicjalizacja w konstruktorze daje radę. Ale
  • Odpowiedz
#programowanie #cpp
Cześć, chcę stwarzać nowy plik tekstowy o nazwie wczytanej z klawiatury w danym folderze. Problem jest taki, że nie wiem jak w ścieżce dodać zmienną nazwy tworzonego piku. Pomożecie? :)

ofstream plik2(login.c_str());
cout << "Podaj login: " << endl;
login += ".txt";
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

czy w Polsce wykorzystuje się w pracy programisty multithreading? Pytałem się programistów java i C#, nikt tego nie używa. Raz słyszałem o jakimś programiście co w C# programuje wielowątkowo dla elektrowni, coś z transformatorami ....
#programowanie
#java
#csharp
#cpp
  • 31
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@boostasio: Większość trzaska apki webowe, tam raczej nie potrzeba implementować wielowątkowości bo jest już zrobiona w frameworkach. Wielu też nie chce się babrać w wielowątkowości bo jest to trudne
  • Odpowiedz
Mam sobie jakiś dowolny program w C++ i każę osobie go używającej wpisać jakąś liczbę. Zabezpieczyłem sobie przez wpisaniem liter, ale co w przypadku przepełnienia bufora(tak to się chyba nazywa), czyli jak ktoś wpisze:
888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
to program wypierdziela w kosmos.

#programowanie #naukaprogramowania #cpp #kiciochpyta
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Jak zrobić żeby metoda która zwróciła 0 wykonała się ponownie (aż do momentu w którym zwróci coś innego/nic)? Konkretnie chodzi o metodę przyjmującą dane z klawiatury, jeśli jest niewłaściwy to zwraca zero, chciałbym żeby w takim wypadku była możliwość ponowienia wpisywania danych.
c++

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

#programowanie #cpp

Mam mały problem podczas pisania projektu. Przechowuje w vectorze "konta użytkowniów" w banku. Mam funkcje w której forem przechodze po wszystkich danych w tych fectorach i sprawdzam czy istnieje konto o podanym loginie. Problem mam z tym, że za każdym obrotem pętli wyświetla mi komunikat, że nie ma takiego użykownia do póki takiego nie znajdzie. Da się w łatwy sposób zrobić tak, aby komunikat wyśtwietlił się
naapster - #programowanie #cpp

Mam mały problem podczas pisania projektu. Przechow...

źródło: comment_4LXaifsd5gx2guTqn4tT9Z2gwI4SP4mA.jpg

Pobierz
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@naapster: to nie wyswietlaj - ogolnie oddziel wyswietlanie i szukanie. I staraj się tak rozdzielać zawsze, dzięki temu, jeśli będziesz musiał zmienić środowisko w którym wyświetlasz, będziesz mógł skorzystać z gotowych rzeczy wdo wyszukania, więc pisania nagle mniej.
  • Odpowiedz
Zaraz mnie coś strzeli:

friend ostream& operator<<(ostream&, Zespolona&);
wywala bląd:

1>d:\dysk google\studia\programowanie\zespolona1\zespolona1\zespolona1.cpp(13): error C2143: błąd składniowy: brakuje „;” przed „&”
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach