dwie zmienne o tej samej nazwie

bogdans
  • Rejestracja: dni
  • Ostatnio: dni
0

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?

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

A po co takie typowanie ?
W Delphi można przypisać zmiennej kilka różnych wartości (pewnie nie zrozumiałeś)

Kopiuj
Var V: Variant;
Begin
 V := 'a';
 V := #13;
 V := 0;
End;
//Itd.

A jeżeli już to

Kopiuj
Var Z1, Z2, Z3, Z4: Integer;

Zmienna+Numer

  • Rejestracja: dni
  • Ostatnio: dni
0

A gdzie Ty widzisz w swoim przykładzie kilka zmiennych? Chodzi o takie coś:

Kopiuj
String akuku="Jasiu";
int akuku=45;
...
int x=akuku; //x=45
String y=akuku; //y="Jasiu"
PiXel
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 98
0

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.

  • Rejestracja: dni
  • Ostatnio: dni
0

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.

Kopiuj
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.

johny_bravo
  • Rejestracja: dni
  • Ostatnio: dni
0

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.

Wibowit
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: XML Hills
0

Bogdans:
W modelu MVC te zmienne i tak znajdowałyby się w innych klasach.

no_solution_found
  • Rejestracja: dni
  • Ostatnio: dni
0

można, ale to zmniejsza czytelność kodu oraz zwiększa problemy z potencjalnym poprawianiem błędów.

Oto kod:

Kopiuj
#include <iostream>

using namespace std;

int zmienna = 5;

int main()
{
	char zmienna = 'c';
	return 0;
}
  • Rejestracja: dni
  • Ostatnio: dni
0

@no_solution_found, te zmienne nie istnieją w tym samym zakresie, jedna przesłania drugą.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.