<1> Employee [] em = new Employee [10];
<2> Employee ss = new Employee;
Employee은 추상클래스인데
추상클래스는 인스턴스 만들기가 불가능 한걸로 아는데 <2>는 역시 안되지만
<1>은 오류가 안나는데 왜 그런가염
<1> Employee [] em = new Employee [10];
<2> Employee ss = new Employee;
Employee은 추상클래스인데
추상클래스는 인스턴스 만들기가 불가능 한걸로 아는데 <2>는 역시 안되지만
<1>은 오류가 안나는데 왜 그런가염
실제로 추상객체가 안생김
그걸담는 포인터의 배열이 생겼을뿐임
저따가 다형성으로 구상객체넣으면 아무문제될게없음
그렇군요. c++은 포인터를 써서 포인터 쓰면 포인터 배열일 뿐이니까라고 생각했을텐데 좀 헛갈렸네요. 말 자체는 이해했어도 아직 헛갈리지만...
나 자바모르는데 걍 모든 객체를 포인터로 보면됨 어차피 레퍼런스라
뭐 자바나 비슷하지만 c#인데 말한데로 모든 객체는 참조형식이라고 공부해서 더 헛갈려여. 객체 포인터면 이건 객체가 아니라 객체를 담을 수 있는 포인터니까라고 쉽게 아해되는데 저건 <1>이나 <2>나 다 포인터고 c++에서 포인터에 객체생성하는것과 마찬가지로 new 키워드로 생성해주는데 뭐 <2>는 명백한 객체생성이고 <1>은 문법이 생소해서 인지... 그냥 c++의 포인터 배열을 만들었다 생각하면 맞는건지... 배열관련 찾아봤는데 저렇게 빈껍데기만 만든건 봇봐서리 더 찾아볼게여
찾았어요. "값 타입 배열을 만들면 메모리가 배열의 선언과 동시에 생성된다. 하지만 객체 배열을 만들면 객체의 이름만 첨자 수 만큼 만들어 질 뿐 객체 자체의 메모리는 생성되지 않는다. 즉 객체의 메모리는 따로 생성해주어야 한다." 라고 하니 c#에서의 의미가 확신이 드네여