목록c++ (14)
dev_eun
[Chapter 6] 상속 기본 용어 상속 : 객체 단위 코드를 재사용하는 방법 재정의 : 기존의 선언 및 정의된 코드를 유지하면서 새롭게 바꾸는 방법 메소드 재정의 : 클래스에 있는 메소드를 자유롭게 재정의 상속 객체 단위 코드를 재사용하는 방법 상속 받는 클래스와 상속하는 클래스 사이의 관계를 고려해 프로그램 작성 기본 형식 class 파생클래스이름 : 접근제어지시자 부모클래스이름 public 접근 제어 지시자를 통한 상속 파생 클래스 인스턴스가 생성되면 기본 클래스의 생성자 호출 파생 클래스는 private 접근 제어 지시자로 선언된 멤버를 제외한 기본 클래스의 멤버에 접근 가능 식별자 검새 순서에 근거 사용자 코드에서 파생 클래스의 인스턴스를 통해 기본 클래스 메소드 호출 가능 메소드 재정의(Ov..
[Chapter 5] 연산자 다중 정의 용어 연산자 함수 : 연산자 다중 정의 : 연산자 함수 연산자를 이용하듯 호출할 수 있는 메소드 클래스에서 다중 정의를 하게 되면 기본 자료형처럼 연산을 할 수 있음 형변환 연산자 operator 변환할자료형() 덧셈 연산자 클래스이름 operator+(const 클래스이름& param) 클래스 형식을 리턴하므로 이동 생성자 호출 void를 반환하게 되면 연속으로 연산 불가능 다중 정의 가능 -> 클래스이름 operator+(다른자료형 param) 대입 연산자 단순 대입 연산자 클래스이름& operator=(const 클래스이름& param){ // 자신에 자신을 대입할 경우 대비 if(this == ¶m) return; // 깊은 복사 수행 delete m..
[Chapter 4] 복사 생성자와 임시 객체 용어 복사 생성자 : 깊은 복사 : 얕은 복사 : 임시 객체 : 이동 시맨틱 : 복사 생성자 객체의 복사본을 생성할 때 호출되는 생성자 디폴트 복사 생성자 : 복사 생성자를 생략하면 디폴트 생성자처럼 컴파일러가 '알아서' 만들어 줌 클래스 내부에서 멤버 변수에 포인터 변수를 동적 할당 및 해제할 경우 조심해야 함 복사 생성자가 호출되는 경우 명시적으로 객체의 복사본을 생성하는 방식으로 선언 함수 형태로 호출 : 매개변수로 사용 함수 형태로 호출 : 반환 타입으로 사용 // 매개변수가 상수형 참조 클래스이름(const 클래스이름 &rhs); 복사 생성자 차단 방법 명시적으로 복사 생성자 삭제 ... Class(const Class& rhs) = ..
[Chapter 3] 클래스 용어 인터페이스 함수 : 함수가 내부적으로 어떻게 상호작용하는지 사용자가 알지 않아도 되는 함수 생성자 : 객체가 생성될 때 자동으로 호출되는 함수 소멸자 : 객체가 소멸될 때 자동으로 호출되는 함수 객체 지향 프로그래밍 개요 사용자의 편의성을 극대화 해야 한다 사용자의 실수를 제작자가 차단해야 한다 ==> 제작자와 사용자 관점을 분리해서 생각 사용자 관점에서? 함수가 구조체의 멤버로 들어간 것 클래스 기본 문법 class 클래스이름{ 접근제어지시자: 멤버변수선언; 멤버함수선언및정의; } 멤버 변수 초기화 생성자 인스턴스가 생성될 때 자동으로 호출된다. class myClass { myClass(){ // 생성자 함수 myData = 10; // 멤버 변수 초기화 } ... ..
[Chapter 2] C++ 함수와 네임스페이스 용어 overloading : 다중 정의, 함수 이름은 같지만 매개변수의 구성이 달라 함수가 구분되는 것 inline : 함수 호출이 아닌 함수의 코드 자체가 들어가게 해주는 예약어 namespace : c++이 지원하는 각종 요소들(변수, 함수, 클래스)을 한 범주로 묶어주기 위한 문법 using : namespace를 생략할 수 있도록 사용하는 예약어 디폴트 매개변수 매개변수의 디폴트 값을 선언한 함수는 호출자 코드에서 실인수를 생략한 채 호출할 수 있다. 다만 함수의 정의가 아니라 선언 부분에 디폴트 값을 기술해야 한다. 모호성이 발생한다. int TestFunc(int p = 10); // 컴파일 에러 int TestFunc(int = 10); in..