블로그 이미지
LanSaid

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Recent Post

Recent Comment

Recent Trackback

Archive

2012. 5. 3. 17:14 Study/C++

* 과제

* 객체와 변수
 1. 공통점 : 데이터를 저장할수 있다.
 2. 차이점 : 변수에는 기능이 없다.
 3. 객체는 동적, 변수는 정적
 4. 객체명, 변수명 모두 해당 메모리에 접근하는 권한이다.

* 객체의 생성 과정
 1. 메모리 할당 
 2. 생성자 호출  - 1. 과 동시에 이루어짐
---------
 3. 생성자 실행
-> 이 구조는 추 후 상속과 관련해서 중요함


* 클래스의 특징
 1. 독립적이어야 한다. -> 유기적인 관계가 없도록 해야한다.
 1. 재활용이 가능해야한다.

* 포인터와 레퍼런스의 차이
포인터는 지정하는 대상을 변경이 가능하고 아무것도 가르키지 않을 수 있지만 레퍼런스는 이 두가지 모두 불가능하다.

* 멤버 함수가 const로 선언될경우
멤버 함수내에서 멤버 변수의 변경이 불가능하도록 방지하는 것.


* 생성자와 소멸자
 둘 모두 무조건 자동으로 호출이 되는 함수. 각각 메모리 할당/메모리 반환 시에 호출 됨
 따로 사용자가 명시하지 않을 경우 컴파일러가 디폴트 생성자/소멸자를 삽입한다.

* 객체의 생성 과정
 - 메모리 할당
 - 생성자 호출

 1. 생성자의 필요성
  1) 객체를 생성과 동시에 초기화 하기 위해서

  2) 객체는 생성과 동시에 초기화되는 것이 좋은 구조



 2. 생성자란?
  1) 객체 생성 시 반드시 한번 호출되는 함수

  2) 클래스와 같은 이름의 함수

  3) 리턴형이 없으며 리턴 하지도 않는다.

  4) 함수이므로 인자를 받을 수 있다. -> 선언 시에 매개변수를 동시에 입력해야한다.

  5) 생성자를 통한 인자의 전달
   - 이전의 객체 생성 방법은 구조체 변수의 선언과 동일한 방법
   - 클래스명 객체명(인자,인자,....) 형태로 인자 전달

  6) public생성자, private생성자
   - public생성자 : 어디서든 객체 생성 가능
   - private생성자 : 클래스 내부에서만 가능

  7) 객체 생성의 두 가지 형태
   Person p = Person("KIM", "123-4563", 22);   // 이름 없는 임시 객체 Person을 생성하여 p에 객체간 복사를 행하여 초기화.
   Person p("KIM", "123-4563", 22);                // 생성하면서 생성자를 통해 바로 객체를 초기화

  8) 오해하기 쉬운 객체 생성
   Person p("KIM", "123-4563", 22);              // 정상적인 객체 생성
   Person p();                                          // 함수 선언!

  9) 특징
   - 생성자도 함수다!
   - 함수 오버로딩이 가능하다.
   - 디폴트 매개 변수 설정도 가능
posted by LanSaid