Zetknął się ktoś z językiem (silne typowanie, brak niejawnych konwersji), który dopuszcza istnienie (w tym samym zakresie) kilku zmiennych o tej samie nazwie różniących się typem?
A po co takie typowanie ?
W Delphi można przypisać zmiennej kilka różnych wartości (pewnie nie zrozumiałeś)
Var V: Variant;
Begin
V := 'a';
V := #13;
V := 0;
End;
//Itd.
A jeżeli już to
Var Z1, Z2, Z3, Z4: Integer;
Zmienna+Numer
A gdzie Ty widzisz w swoim przykładzie kilka zmiennych? Chodzi o takie coś:
String akuku="Jasiu";
int akuku=45;
...
int x=akuku; //x=45
String y=akuku; //y="Jasiu"
Jedno zasadnicze pytanie - po co?
No i takie rozwiązanie byłoby naprawdę ciężkie dla kompilatora i drugie tyle wolniejsze.
Sądzę, że nie ma takiego języka.
Też myślę, że nie ma takiego języka, ale widzę inne powody.
(Skoro kompilator radzi sobie bez problemu z przeciążaniem nazw funkcji, to poradzi sobie z przeciążaniem nazw zmiennych, zupełnie nie wiem dlaczego program miałby działać wolniej).
Praktycznie trzeba by zrezygnować z konwersji - również tych jawnych.
int x=4
float x=5.0;
Ile wynosi (double)x ?
A po co taki bajer? Czasami mam wielką ochotę nazwać tak samą zmienną (np. numeryczną) i pole tekstowe służące do wpisania tej zmiennej.
Dla kompilatora problemu nie ma, zmienne sa jednoznacznie identyfikowalne przez nazwe i typ. Ale w przydatnosc takiego zastosowania watpie. Zysk niewielki, koszt duzy - czytelnosc kodu mocno spada. Nie znam takiego jezyka.
Bogdans:
W modelu MVC te zmienne i tak znajdowałyby się w innych klasach.
można, ale to zmniejsza czytelność kodu oraz zwiększa problemy z potencjalnym poprawianiem błędów.
Oto kod:
#include <iostream>
using namespace std;
int zmienna = 5;
int main()
{
char zmienna = 'c';
return 0;
}
@no_solution_found, te zmienne nie istnieją w tym samym zakresie, jedna przesłania drugą.