#naukaprogramowania #cpp
Mam pytanie.
Mam taką o to funkcję do wyznaczania maksimum lokalnych funkcji. Docelowo dla sinus i cosinus, jest wczytywanie i dopisywanie do pliku. Pytanie ? Jak przerobić funkcję max_f dla minimum lokalnych. Algorytm zakłada znalezienie 3 sąsiadujących ze sobą punktów. wujaszko google mówi że jest to związane z całkowaniem numerycznym a za bardzo tego nie łapie jeszcze :X
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

[hi, sorry for my bad c++] Mam zagwozdkę. Użytkownik ma wprowadzić float. Jak rozwiązać problem wprowadzania przecinka zamiast kropki? Program ma sam odczytać że był przecinek czy pytać do skutku? Przy użyciu cin.fail czy czego najlepiej coś takiego zrobić?
#cpp #programowanie
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Piotrekp666: Ale to, czy poprawnym separatorem jest przecinek, czy kropka powinno zależeć od 'lokalizacji'. Chyba, że się upierasz przy przecinku, to wtedy może po prostu pobieraj wartość jako String, i przed przekazaniem dalej, jako float, validuj.
  • Odpowiedz
Mam klasę BB która definiuje move constructor(przez co g++ nie definiuje dla niej m.in. konstruktora kopiującego przez refrencję) i chcę w klasie CC mieć składową BB przekazywną przez konstruktor. Jak powinien wyglądać konstruktor klasy CC? #naukaprogramowania #cpp
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mirki mam taką funkcję. http://pastebin.com/5nNfdd4e
Dodaje ona gracza ale najpierw sprawdza czy login jest zajęty. Tylko nie działa ona tak jak chcę.
Podczas debagowania jeśli podany login już istnieje to ładnie wskakuje do if'a ale po wyświetleniu "Wybrany login jest zajęty" zawsze od razu przeskakuje do ostatniej linii czyli return true. Dlaczego tak się dzieje i nie chce wykonać return false.
#programowanie #cpp #naukaprogramowania
  • 16
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@chiken:
Nie mam pojęcia po co ale masz 2 razy getline dla standardowego strumienia:
http://ideone.com/zv6M2D
Usuń 1 (jak w kodzie) i będzie działać, generalnie w przypadku używania getline trzeba sie coś bawić z czyszczeniem strumienia, ale w cpp pisałem chyba z pięć lat temu ;)
  • Odpowiedz
The Tale Of The Two-Day, One-Character Patch

Adam Williamson dokonywał rekompilacji pakietów zależnych od Pythona 3.6, który niedawno został dodany do Fedory Rawhide i tak jak się spodziewał, kilka z nich błędnie się budowała. Przystąpił do badania przyczyny co rozpoczęło ciekawą wędrówkę poszukiwawczą z intrygującym zakończeniem.

https://www.happyassassin.net/2017/01/11/the-tale-of-the-two-day-one-character-patch/

Bardzo
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@wolodia: Wiadomo, mowie tylko, ze takie "naiwne" zapisywanie do pliku moze nas zaskoczyc, jezeli zrobisz serializacje/deserializacje to masz mozliwosc kontroli jak zapisujesz elementy, w przypadku write(void *) nie za bardzo jest jakakolwiek kontrola nad tym co robisz. Jest endianess, jest rozmiar slowa, jest padding...
  • Odpowiedz
czy jeśli metoda w klasie bazowej jest virtual (bo chcę ją później nadpisać w klasie po niej dziedziczącej) to ta w klasie pochodnej tez ma miec przy deklaracji to słowo kluczowe virtual?
I w ogóle, czy są jakieś inne zastosowania dla tego, niż, jak dobrze rozumiem:
1. kiedy chcemy, żeby zawsze była wywoływana metoda 'najniżej' jak tylko się da, nawet jeśli zrzutujemy wskaźnik na obiekt jakiejś klasy na klasę wyższą, to
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@piternet: o ile pamiętam nie musisz. Ale w tak drobnych sprawach najszybciej jest po prostu sprawdzić. Dodać do jakiejś funkcji virtual i sprawdzić czy się kompiluje - dużo szybciej i pewniej.
  • Odpowiedz
@piternet: http://ideone.com/CzuBvH - virtual jest potrzebne tylko w jednej klasie, wszystko co po niej dziedziczy, niezależnie od głębokości będzie miało void foo() jako wirtualne. Jeśli chcesz na pewnym etapie "wyłączyć" wirtualność metody i uniemożliwić dalsze jej nadpisywanie używasz słowa final
Nie wspomniałeś w bazowa jest abstrakcyjna (interfejs) czy nie ;)


@ulises: to nie ma znaczenia.
  • Odpowiedz
Super Template Tetris
Autor: Matt Bierner

Ciekawa implementacja tetrisa oparta o szablony języka C++ (wykorzystuje elemnty C++17).

Mechanika gry odbywa się w trakcie kompilacji a ruch jaki chcemy wykonać podajemy jako parametr dla kopmilatora. Jedyne zadanie skompilowanego programu to wyświetlenie aktualnego stanu gry i zaktualizowanie pliku przechowującego stan gry.
FNwsk - Super Template Tetris
Autor: Matt Bierner

Ciekawa implementacja tetrisa o...

źródło: comment_eOHdfS0BjKR6xvSzRPWUybaWV6FkPkoJ.jpg

Pobierz
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Co może być powodem EBADF(9) w errno po użyciu read() w sytuacji gdy wątek 1 czeka z accept(), accept zwraca poprawny fd (fd > 0), fd jest przekazywany do std::thread, w nowym wątku na fd (nadal jest > 0) wołam read() i dostaje wspomniany EBADF. Po odpaleniu wątku jest na nim wołane join()? Po stronie klienta przed zamknięciem socketa dałem std::cin.get() (aby upewnić się że Linux buffora za wcześnie nie skasuje, ale
  • 14
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Co zrobic gdy wyskakuje mi ten error?
Error [mod0000mergedfiles]game\gui\mainmenu\ingamemenu.ws(766): Found unexpected '}' gdy on tam powinienn byc?

**private function StartShowingCustomDialogs()
{
if (theGame.GetDLCManager().IsEP1Available() && theGame.GetInGameConfigWrapper().GetVarValue('Hidden', 'HasSeenEP1WelcomeMessage')
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

/*********************************************************************/

/ © 2016 CD PROJEKT S.A. All rights reserved.

/ THE WITCHER® is a trademark of CD PROJEKT S. A.

/ The Witcher game is based on the prose of Andrzej Sapkowski.

/***********************************************************************/


Co xD?
  • Odpowiedz
Chciałem zrobić taką "sztuczkę" w C++ - przyjąć w konstruktorze klasy/struktury, wartość typu T1, w jakiś sposób "zapamiętać" typ przyjęty przez konstruktor, a następnie w innej funkcji sprawdzić, czy inny podany typ T2 == T1.

Spróbowałem zrobić to w ten sposób:

struct Foo {
  • 17
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@5z7k9: do porównywania typów w trakcie kompilacji jest std::is_same. ale żeby z tego sensownie skorzystać musiałbyś prawdopodobnie uczynić z Foo template, a zgaduję że tego nie chcesz.
  • Odpowiedz
@KrzaQ2: O ile dobrze widzę to będzie działało tylko dla typów z static types?

@5z7k9: Od C++11 jest do tego typeindex, bo sam hashcode() ci nie wystarczy (może się okazać że dwie mają taki sam), ale fakt faktem nie da się tego zainicjalizować jako constexpr czyli
constexpr Foo bar(3.14f);
nie zadziała.
Generalnie typeid(T) nigdy nie będzie constexpr, nie da się tego tak zaimplementować, no chyba
  • Odpowiedz
#programowanie #cpp mam sobie enum class jakiś i wartość po cascie na int jest zapisywana do bazy danych. Czy mam pewność, że te wartości zawsze będą takie same, po kolei? Bez względu na to, że np. skompilowałem program po zmianach i np. po roku, to wczytując z tej bazy danych tego inta i castując na enuma będzie to samo? Czy jednak muszę pisać = 0, = 1, =
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Dijuna: http://en.cppreference.com/w/cpp/language/enum

When initializers are provided in the enumerator-list, the values of enumerators are defined by those initializers. If the first enumerator does not have an initializer, the associated value is zero. For any other enumerator whose definition does not have an initializer, the associated value is the value of the previous enumerator plus one.

Te wartości są dobrze zdefiniowane i się nie zmienią.
  • Odpowiedz
Mireczki kochane z #programowanie i #informatyka polećcie jakąś książkę, taką dla początkujących z #cpp (zmienna zdefiniuje, pętle zrobie, warunkowe instrukcje tez znam, odczyt i zapis z pliku/do pliku jakoś też zrobię), żebym się do matury z informatyki zdążył przygotować i żeby się na studiach przydała.
A poza tematem - gdzie się całej teorii nauczyć? Pozdrawiam!
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Darmowy ebook po sieci krążył "Od zera do gier kodera" ... ja się z tego uczyłem, ale to było daaawno temu i nie wiem czy dalej aktualne...
  • Odpowiedz
@igorovsky: Bo język c++ od czasu napisania tej książki ewoluował bardzo, tak jak i dobre praktyki. Jest po prostu przestarzała, co było dobre lata temu niekoniecznie dobre jest i dziś.
  • Odpowiedz