Jakie języki dla przyszłego programisty???

0

@Polaczek, może Twojej znajomości C++? Wrzuć to w funkcję? Przecież poza funkcjami i przestrzeniami nie możesz tworzyć zagnieżdżonych scope, prawda?

void zuo() {
/* 1 */ { const int x = 666;   /**/  { int x = x;  } }
/* 2 */ { const int x = 666;   /**/  { int x(x);   } }
/* 3 */ { const int x = 666; { enum  {     x = x };} }
}

Poza tym stare Buildery mają tyle wspólnego z C++ co z Javą...

@lukas_gab, debugger może takie rzeczy pokazywać leksykalnie, x to x... Poza tym zewnętrza wartość to stała, ale z tego miejsca kodu (wewnętrznego scope) niedostępna.

0

No tak czyli to wina debugger. Dzięki za wyjaśnienie, ciekawe to było ;p

Swoją drogą zapisze te przykłady i postraszę kumpli na uczelni ;p

0

Swoją drogą GCC przepuszcza spieprzoną wersję enuma, jak mi doniesiono. Enum wprowadza symbole do otaczającego scope, tam już przecież x jest, w tym samym przesłonić przecież nie można...

0

@Polaczek, może Twojej znajomości C++? Wrzuć to w funkcję? Przecież poza funkcjami i przestrzeniami nie możesz tworzyć zagnieżdżonych scope, prawda?

void zuo() {
/* 1 / { const int x = 666; /**/ { int x = x; } }
/
2 / { const int x = 666; /**/ { int x(x); } }
/
3 */ { const int x = 666; { enum { x = x };} }
}

Poza tym stare Buildery mają tyle wspólnego z C++ co z Javą...

A nie przepraszam bardzo to moja wina. Ale to tez nie chodzi o to co Ty piszesz. Moze byc w Main(); i bedzie dzialac. Po prostu zamiast skopiowac przepisalem a przepisujac przeoczylem bloki...
Moja wina... przyznaje sie :)

0

A main nie jest funkcją ?

0

Mialem na mysli ze wczesniej wpisywalem w main i byl blad. No ale to przez bloki jak juz wspomnialem.

0

Kodów źródłowych się NIE przepisuje jeżeli nie ma takiej konieczności, zwłaszcza jeśli nie rozumie się podstaw...

0

przeoczenie i tyle...

0

Hmmm, nie chciało mi się sprawdzać, ale mam nadzieję, że chociaż kompilator sypnie jakimś warrningiem na to.
Ogólnie za stworzenie takiej konstrukcji jak 1, 2 lub 3 w normalnych warunkach należy się dożywotni zakaz dotykania komputera, a nawet pilota do telewizora :p

0

Może i tak, ale obrazują jak spójny jest C++, a to tylko podstawy, im głębiej tym weselej...

0

To pokaż jeszcze coś ciekawego! Kiedyś coś o przestrzeniach nazw pisałeś z cipkami i pipkami, ale nie pamiętam gdzie to jest.

0
class A {
public:
  virtual void print(string msg = "C++ jest ") { cout << msg << " spójny"; }
};

class B: public A {
public:
  virtual void print(string msg = "C++ nie jest ") { cout << msg << " niespójny"; }
};


A* obj = new B();
obj->print();  // co wypisze?
0

Nie mow, ze wezmie z macierzystej msg ? :D

0

Weźmie.

0

Bo jak się nie wie co się robi, to potem takie cuda wychodzą ;-)
W Delphi jest podobnie.

0

Nie no, zawsze dla każdej niespójności znajdzie się jakieś wytłumaczenie.
Jednak w wielu innych językach działa to zgodnie z oczekiwaniami - tzn. wartość domyślna należy do metody, a nie kodu wywołującego.

1 użytkowników online, w tym zalogowanych: 0, gości: 1