본문 바로가기

C++13

[ C++ ] 템플릿과 표준 템플릿 라이브러리(STL) 제네릭 또는 일반화 : 함수나 클래스를 일반화시키고, 매개변수타입을 지정하여 틀에서 찍어 내듯이 함수나 클래스 코드를 생산하는 기법 템플릿 : 함수나 클래스를 일반화하는 C++ 도구 : template 키워드로 함수나 클래스 선언 -> 변수나 매개 변수의 타입만 다르고, 코드 부분이 동일한 함수를 일반화시킨다. 제네릭 타입 : 일반화를 위한 데이터 타입 템플릿 선언 양식 template 또는 template 3개의 제네릭 타입을 가진 템플릿 선언 template 템플릿 사용예시 #include using namespace std; template void myswap(T& a, T& b) { T tmp; tmp = a; a = b; b = tmp; } int main() { int a = 4, b = 6.. 2021. 6. 9.
[ C++ ] 가상함수와 추상클래스 가상 함수(virtual function) virtual 키워드로 선언된 멤버 함수이다. virtual 키워드의 의미는 아래와 같다. - 동적 바인딩 지시어 - 컴파일러에게 함수에 대한 호출 바인딩을 실행 시간까지 미루도록 지시하는 역할을 한다. 함수 오버라이딩(function overriding) 파생 클래스에서 기본 클래스의 가상 함수와 동일한 이름의 함수 선언 - 기본 클래스의 가상함수의 존재감을 상실시킨다. - 파생 클래스에서 오버라이딩한 함수가 호출되도록 동적 바인딩 - 함수 재정의라고도 부른다. - 다형성의 한 종류이다. 오버로딩 : 같은 클래스 내에서 이름이 같은 것. 추상 클래스 추상 클래스를 얘기하기 전에, 순수 가상함수를 먼저 설명해보겠다. 순수 가상 함수 함수의 코드가 없고, 선언만 .. 2021. 5. 26.
[ C++ ] 상속의 개념 | 상속 예제 C++ 에서 상속이란? 클래스 사이에서의 상속관계를 정의하는 것이다. 기본 클래스의 속성과 기능을 파생 클래스에 물려주는 것이다. + 기본 클래스 -> 상속해주는 클래스. 부모 클래스 + 파생 클래스 -> 상속받는 클래스. 자식 클래스 클래스를 상속하게 되면 얻는 이점 1. 클래스 간결하게 작성 2. 클래스 간의 계층적 분류 및 관리 용이 상속관계의 생성자와 소멸자 실행 질문 1: 파생 클래스의 객체가 새엇ㅇ될 때 파생 클래스의 생성자와 기본 클래스의 생성자가 모두 실행되나요? 답 1: 네 둘 다 실행됩니다. 질문 2: 파생 클래스의 생성자와 기본 클래스 생성자 중 어떤 생성자가 먼저 실행되나요? 답 2: 기본 클래스의 생성자가 먼저 실행됩니다. #include using namespace std; cl.. 2021. 5. 18.
[ C++ ] 프렌드함수 || 연산자 중복 || 프렌드함수 예제, 연산자 중복 예제 프렌드함수 : 클래스의 멤버 함수가 아닌 외부함수 : 전역 함수 : friend 키워드로 클래스 내에 선언된 함수 : 클래스의 멤버로 선언하기에는 무리가 있는, 클래스의 모든 멤버를 자유롭게 접근할 수 있는 일부 외부 함수를 작성 할 때 필요하다. 클래스의 모든 멤버를 접근할 수 있는 권한이 부여된다. 프렌드 함수가 되는 세가지 : 전역함수 - 클래스 외부에 선언된 전역 함수 : 다른 클래스의 멤버 함수 - 다른 클래스의 특정 멤버함수 : 다른 클래스 전체 - 클래스의 모든 멤버 함수 1. 외부함수 equals() 를 Rect 클래스의 프렌드로 선언하는 것 class Rect{ friend bool equals(Rect r, Rect s); } #include using namespace std; cla.. 2021. 5. 11.