@Khaine: rzutuje cos na eskaznik do int, i poniewaz jest to zdaniem programisty tablica to pobiera zerowy element, i ten wlasnie zerowy element ma byc rozmiarem tablicy charow( ͡° ͜ʖ ͡°)
  • Odpowiedz
Kolejna ciekawostka:
Operator przesunięcia w prawo (right shift) w przypadku kiedy lewym operandem jest liczba ujemna ma zachowanie zależne od implementacji (implementation defined).
Większość kompilatorów decyduje się na przesunięcie arytmetyczne (arithmetic shift) ale podobno są takie, które realizują to jako logical shift.

Chyba założe sobie tag z ciekawostkami :) #ciekawostkicpp
#cpp
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

To tak dla potomnych:
C99 (6.5.7.5):
The result of E1 >> E2 is E1 right-shifted E2 bit positions. If E1 has an unsigned type or if E1 has a signed type and a nonnegative value, the value of the result is the integral part of the quotient of E1 / 2E2. If E1 has a signed type and a negative value, the resulting value is implementation-defined

C++ (aktualny draft, 5.8.3):
The value of E1 >> E2
  • Odpowiedz
Nigdy nie zrozumiem ludzi, wklejających na forach i innych tego typu platformach, niesformatowany kod, który nie ma prawa się zbudować, nie ze względu na błąd, lecz na celowe okrojenie i niezgodne z językiem komentarze.
  • Odpowiedz
Przeczytaj sobie o referencji


@MtEverest: Przeczytałem. Jeden znak '&' i program ten mój śmiga, troszkę w szoku jestem, że to tak mało trzeba było. Ale ten program po modyfikacji na moje oko o wiele bardziej przejrzysty.
  • Odpowiedz
Noc programowania ciąg dalszy. Pytanie amatora. C++.
Załóżmy, że mam metodę, która ma zwrócić wartość pola trójkąta. Mam metody zwracające jego wysokość i podstawę. No i jest coś takiego:

double Triangle::countAreaOfTriangle()
{
double fieldOfTriangle = (getBase() * getHeight()) / 2;
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Jeżeli nie używasz w funkcji zmiennej fieldOfTriangle to możesz ją wyrzucić i zrobić samo return (getBase() * getHeight()) / 2; Plus jeżeli zwracana wartość jest typu double to lepiej dzielić przez 2.0, a nie 2. W przypadku gdy wartości zwracane przez getBase i getHeight bedą zmiennymi całkowitymi to zostanie zastosowane dzielenie dla liczb całkowitych i wynik też będzie liczbą całkowitą. Czyli otrzymasz wynik całkowity (utrata części ułamkowej) a funkcja przy zwracaniu wartości
  • Odpowiedz
#programowanie #naukaprogramowania #cpp
opanowałem już podstawy programowania w C++. Nadszedł czas na wybór środowiska programistycznego, (dotychczas pisałem w Code::Blocks) w którym będę pisał aplikacje okienkowe. Pytanie jest proste: pisać w Visualu, który na sam widok mnie przeraża, czy jest jakieś inne przyzwoite środowisko? Myślałem nad czymś typu C++ Builder, który wydaje się być przyjaznym dla amatora IDE. Co myślicie?
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#cpp a bardziej #c
Taka rozkmina...
Skoro int w C99 ma zakres -127:+127
Jesli mamy:
struct {
int i:1
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@simia: porównujesz standard do tego co wypluje kompilator - nie robiłbym tego ( ͡° ͜ʖ ͡°) jest to zależne od implementacji, to jest minimalny zakres jaki powinien być obsługiwany (przykładowo przez U1, wtedy mamy zero dodatnie i zero ujemne).
W praktyce char jest zwykle zapisany na 8 bitach w systemie U2, co daje zakres -128 : +127.
  • Odpowiedz
Elo murki #cpp, mam pytanie jako świeżak.
Uczę się tego słynnego programowania i jestem na etapie polimorfizmu klas. Nie wiem czy dobrze rozumiem ideę podejścia obiektowego więc postanowiłem przerobić stary kod do sortowania na wersję z wykorzystaniem klas. Mój kod znajdziecie tutaj. Wiem że niepotrzebnie tworzę trzy obiekty (oszczędzaj RAM gdziekolwiek jesteś), ale ten aspekt pomińmy. Czy w sensowny sposób korzystam z polimorfizmu? Co mogę poprawić?

#naukaprogramowania
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mi się nie podoba. "inheritance is the base class of evil", a tutaj tak na siłę użyte. Poczytaj o wzorcach projektowych, np dekorator, kompozyt, gdzie cały ten polimorfizm ma sens.
  • Odpowiedz
Mam zagwozdkę mircy. Uczę się C++ już jakiś czas i myślałem o nim głównie zarobkowo, ale powoli dochodzę do momentu, gdzie nie wiem z czego się uczyć, kiedy będę mógł załapać pierwszą pracę, itd. Zacząłem niecały miesiąc temu, zupełnie od zera, opanowałem podstawy (a przynajmniej tak mi się wydaję). Co muszę umieć, gdzie znaleźć pierwszą biedapracę, skąd się dalej uczyć, jakieś książki, czy coś? Chętnie bym poczytał doświadczenia kogoś kto siedzi w
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

czy to jest dla mnie odpowiednia droga

@Ziutini: Tego to ja Ci nie powiem.

Natomiast jeśli nie jesteś w stanie zrobić prostych zadanek ze spoja, to zastanów się jaka jest Twoja przydatność dla pracodawcy. Pewnie po odliczeniu zusu będzie to koszt zusu.
  • Odpowiedz
@Ziutini: nie żebym cię zniechęcał, ale żeby mieć co pokazać dla pracodawcy to zamiast udawadniać mu że coś się tam nauczyłeś powinieneś sam się wykazać inicjatywą i zacząć coś tworzyć lub współtworzyć, pokazując w ten sposób że jesteś w stanie praktycznie wykorzystać swoją wiedzę, znajdź dla siebie jakąś niszę która cię najbardziej interesuje, obczaj gita, zacznij z niego korzystać, a jak już się trochę ogarniesz to zainteresuj się współudziałem w
  • Odpowiedz