728x90

포큐아카데미 c++3200강의 내용을 개인학습용으로 정리한 내용입니다.

 

c++ OOP특징

 

클래스

개체

생성자

함수 오버로딩

힙에 개체 생성하기

 

(자바에서는 불가능)

스택에 개채 생성하기

복사 생성자

소멸자

연산자 오버로딩

 

 

oop 핵심 개념  == 사람들이 세상을 바라보는 방식

 

java,c#은 클래스 인스턴스화시 멤버를 초기화값 (정수는 0)으로 초기화한다.

c++는 멤버를 메모리할당만하고 가비지 값 상태로 그대로 둔다

 

c에 없는 기능이 다른 언어에 있다면 누군가 구현한 것이고 어떻게 구현했을까 생각해보기


new/delete  와 malloc/free 의 차이는?(스스로 찾아보기)

malloc은 메모리 동적할당만 가능하고 초기값을 지정할 순 없다.

new는 할당과 동시에 초기화가 가능하다. 대신 malloc은 realloc으로 재할당이 가능하다. 

 

C++는 초기화리스트를 통해 생성자에서 초기화한다

 

기본 생성자는 없으면 자동적으로 만들어준다. 생성자가 있으면 기본생성자 만들지 않는다.

 

C++에는 Destructor 소멸자가 있다! 객체 안에서 할당된 메모리를 직접 해제 해줘야한다.

 

메소드에 붙는 const :: 개체를 수정할 수 없다.

 

struct와 class 차이

c++에서 struct와 class는 완전히 똑같다. 다만 기본접근권한이 struct는 public class는 private이다. 

컴퓨터는 struct와 class를 구분하지 못한다. 컴파일러는 구분한다.

c++는 구조체를 클래스처럼 쓸 수 있지만 구조체는 c 스타일로 pod(plain old data) 형태로 쓰자.

 

 

728x90

+ Recent posts