Wywiad twórcą C++ - Bjarne Stroustrupem

Bardzo delikatnie, ale mimo wszystko wyraziście powiedział co myśli o ludziach chwalących naukę C++ najpierw od C:

I have doubts about the areas of expertise of people who would still suggest the “C first” approach to C++. (...) Basically, C is not the best subset of C++ to learn first. The “C first” approach forces students to focus on workarounds to compensate for weaknesses and a
@asdasty: Tak - to inne języki! (podobne tylko nazwą - jak Java i JavaScript). Jeśli chcesz działać w csharp, to nie "śmieć" sobie cpp - oczywiście z całym szacunkiem do Bjarne'a i jego osiągnięć. C# jest też trochę nowocześniejszy ;)

Ps. Daję tag #cpp gdyby ktoś z devc++ chciał mnie nawracać ;)
@KrzaQ2:

--------------------------------------------------------------------------------

Language files blank comment code

--------------------------------------------------------------------------------

C++ 104 4357 3542 18320

C/C++ Header 104 879 1962 3611

CMake 3 52 35 389

IDL 1 0 0 254

DOS Batch 2 31 2 139

Bourne Shell 3 8 0 46

Bourne Again Shell 1 0 0 18

--------------------------------------------------------------------------------

SUM: 218 5327 5541 22777

--------------------------------------------------------------------------------

takie jest zbyt ogromne ? ;)
@nme: Nie wiem jak to jest w systemach Windowsowych ale ja zwykle w środowisku kompiluje i piszę. Np cmake samo potrafi zrobić ci z wybranych plików bibliotekę. Kompilując na Linuksie so (czyli biblioteki współdzielone łatwo dodać przez LDLIBRARYPATH )wcześniej dając znać linkerowi że to się będzie robiło.
A próbowałeś potem to odaplić na innym kompie? Ja miałem taką sytuację, że u mnie po skompilowaniu biblioteki *.so się ładnie dołączały, a u kumpla już nie. Rozwiązaniem było właśnie zrobienie klas granicznych w extern 'C'.
#programowanie #cpp #informatyka

Dostalem taki program do napisania w ramach cwiczen domowych:

Stolarz ma sklad z trzema rodzajami desek. Wszystkie maja taka sama szerokosc, ale rozne dlugosci. Sprzedajac deske pewnej okreslonej dlugosci, jezeli jest ona inna od tej podanej przez użytkownika, nalezy odciac od poprzedniej deski. By odpadki nie byly za duze, trzeba do tego wybrac najkrotsza deske (program powinien wskazywac najkrotsza mozlwia deske automatycznie), powinien tez zawierac funkcje wyrzucenia odpakdkow (usuniecie
Ja bym raczej zrobił sobie posortowany zbiór (

multiset
) desek, gdzie kluczem jest jej długość. Po kaƶdym odcięciu zastępujesz długość wartością odciętą. W ramach czyszczenia zostawiasz tylko trzy dozwolone klucze.
Znów mam programistyczny problem. #programowanie #cpp #arduino

Mam sobie zadeklarowaną tablicę elementów typu FLASHSTRING.

FLASH_STRING_ARRAY(notepad, PSTR("Zero"), PSTR("One"),

PSTR("Two"), PSTR("Three"), PSTR("Four"), PSTR("Five"),

PSTR("Six"), PSTR("Seven"), PSTR("Eight"), PSTR("Nine"));

zadeklarowana jest wewnątrz funkcji void(loop) w jednym z wyrażeń warunkowych. Takich wyrażeń jest kilka, każde zawiera taką tablicę elementów, tylko z różnymi elementami.

W tych samych wyrażeniach w których mam te FLASH
STRINGARRAY mam taką pętlę, która do tej pory (przed zmianą na FLASHSTRING_ARRAY)
@feliks-dzierzynski: Pewnie to zależy co jest potrzebne, ale kumpel prowadzi rozmowy rekrutacyjne i poziom kandydatów jest ogólnie żenujący. Nie radzą sobie z rzutowaniem, robią błędy w przykładowych zastosowaniach polimorfizmu, nie znają wzorców projektowych, nie mają pojęcia o stercie, stosie, wywłaszczaniu, wątkach, semaforach, rozmiarach struktur danych (padding)... ogólnie problemy sprawiają rzeczy, które nazwałbym podstawami ze studiów.

Ale odpowiadając na twoje pytanie - jak dobrze poznasz Gręboszowską Symfonię C++ to technicznie przejdziesz rozmowę
#informatyka #programowanie #cpp

Najlepsza książka do nauki C++ dla początkującego to...? Sam już się uczyłem ładnych parę lat temu i nie wiem co teraz polecić. Jak na razie najsensowniejsza wydaje mi się Szkoła Programowania. Z drugiej strony mogło by być coś mniejszego, bo sam zainteresowany jest w 1 klasie gimnazjum i 3/4 tej książki do niczego mu się na razie nie przyda.
@Sn3jku: Pomyślałem już o tym. Chciałem zrobić to tak:

- jeden semafor (full) inicjowany zerem mówi ile jest zajętych miejsc w buforze,

- jeden semafor (empty) inicjowany maksymalną pojemnością bufora, mówi ile jest zajętych miejsc w buforze,

- jest jeden mutex synchronizujący dostęp do bufora.

Standardowo to by było tak (up - podniesienie semafora, down - opuszczenie):

produce(int i)

{

down(empty);

down(mutex);

//wstawienie do bufora

up(mutex);

up(full);

}

int consume()

{
@erwit: powinieneś użyć {...} żeby wydzielić część kodu zawartą w forze. Jeśli w forze masz tylko 1 instrukcję obejdzie się bez klamerek, ale jeśli dowalisz ten średnik po forze to tak jakby instrukcja w forze była pusta. a te couty są już za forem.

edit: to się tyczy także ifa i zagnieżdża w tym przypadku
VS2012 wyrzuca mi taki błąd 3 programie #cpp na jutro :/ (w sumie to na dzisiaj)

d:\programy\dropbox\pwr\obiektowe\complex\complex\complex.cpp(131): error C2666: "operator +" : przeciążenia 2 mają podobne konwersje


1> d:\programy\dropbox\pwr\obiektowe\complex\complex\complex.cpp(14): może to być "complex operator +(const complex &,const complex &)"


1> lub "wbudowany operator+(int, double) języka C++"


1> podczas próby dopasowania listy argumentów "(int, complex)"

kod:

linia 131: c=5+a*b;


i wcześniej:

class complex { (..)


friend complex operator+ (const complex &a, const complex