JAVA/C++ - brak możliwości przypisania

0

Witam,

Pytanie nasuneło mi się z przyzwyczajeń z Javy

Mamy swoje prosty kodzik

 public class Klasa {

	private int liczba = 4;
	
	void wypisz(){
	System.out.println(liczba);
	}
	
	
	public static void main(String[] args) {
	   Klasa klasa = new Klasa();
	   klasa.wypisz();
	}
}

Wygląda na to, że w przypadku przypisania wartości w C++ nie odpali mi przykładzik (kod poniżej)

 class Klasa
{
private:
    int liczba=4; // bez przypisania liczby 4 działa
public:
    void wypisz(){ cout << liczba;}
};

int main()
{
  Klasa klasa;
  klasa.wypisz();
  return 0;
}

Proszę o rozwinięcie tematu. Dlaczego nie jest to dowzolone w C++. Wiem, że można przyjmować na przykład domyślne wartości w metodach klasy. To jest jedyny powod ?

0

Bo tak wymyślili. Zmienią to w C++0x. A jak nie chcesz się aż tak mocno przestawiać to proponuję D.

0

Odpowiednikiem

 
public class Klasa {
        private int liczba = 4;
...
}

w C++ bedzie

 
class Klasa
{
private:
   int liczba;

public:
   Klasa() : liczba (4) {}
}

skladowe klasy inicjowane sa na liscie inicjalizacyjnej konstruktotra.

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