[Effective C++] #37 가상 함수, 기본 매개변수 Scott Meyers의 "Effective C++"를 통해, C++ 구현에 필요한 개념들을 이해하고, 기록하기 위함입니다. 해당 항목은 6장 "상속, 그리고 객체 지향 설계", 항목 37 "어떤 함수에 대해서도 상속받은 기본 매개변수 값은 절대로 재정의하지 말자"에 해당하는 내용입니다. 가상 함수, 동적 바인딩 class Shape { public: virtual void Draw(ShapeColor color = Red) const = 0; enum ShapeColor { Red, Blue, Green }; ... }; class Rectangle : public Shape { virtual void Draw(ShapeColor color..
[Effective C++] #36 비 가상 함수의 상속, 바인딩 Scott Meyers의 "Effective C++"를 통해, C++ 구현에 필요한 개념들을 이해하고, 기록하기 위함입니다. 해당 항목은 6장 "상속, 그리고 객체 지향 설계", 항목 36 "상속받은 비 가상 함수를 파생 클래스에서 재정의하는 것은 절대 금물!"에 해당하는 내용입니다. 비 가상 멤버 함수 class A { public: void mf();// 비 가상 멤버 함수 virtual void mf2();// 가상 멤버 함수 ... }; class B : public A {...}; 기본 클래스에 대한 public 상속은 "is... a" 상속입니다. 이전 항목에서 다뤘던 내용입니다. public 상속이란, 클래스 "B"를 클래스 ..
[Effective C++] #35 Public 가상 함수의 대안, NVI, 전략 패턴 Scott Meyers의 "Effective C++"를 통해, C++ 구현에 필요한 개념들을 이해하고, 기록하기 위함입니다. 해당 항목은 6장 "상속, 그리고 객체 지향 설계", 항목 35 "가상 함수 대신 쓸 것들도 생각해 두는 자세를 시시때때로 길러 두자"에 해당하는 내용입니다. 가상 함수 class someClass { public: virtual int virtualFunc() const; ... }; 가상 함수의 선언은 파생 클래스로 하여금 인터페이스와 기본 구현을 제공받도록 하고, 각 파생 클래스의 필요에 의해 재정의 할 수 있도록 해줍니다. 멤버 함수들의 인터페이스 상속과 구현 상속 관련 내용은 링크를 참..
[BOJ 알고리즘, C++] #10814 나이순 정렬 BOJ 알고리즘 문제 풀이, 10814번 문제 : 나이순 정렬 입력받은 정보를 통해, 나이순으로 정렬하고 나이가 같다면 입력 순으로 정렬 문제 더보기 sort() 함수 [BOJ알고리즘, C++]#2751 수 정렬하기 2 [BOJ 알고리즘, C++] #2751 수 정렬하기 2 BOJ 알고리즘 문제 풀이, 2751번 문제 : 수 정렬하기 2 정렬 알고리즘을 사용하여 배열의 원소들을 오름차순으로 정렬합니다. 문제 std::sort() C++의 헤더파일에서 webddevys.tistory.com 풀이 과정 1. 나이와 이름을 한 객체에 저장하기위해 "pair "을 생성합니다. 2. 각각의 pair들을 정렬 하기위해 "vector "을 생성합니다. 3. sor..
[BOJ 알고리즘, C++] #1181 단어 정렬 BOJ 알고리즘 문제 풀이, 1181번 문제 : 단어 정렬 입력받은 단어들을 우선 길이 순으로 정렬, 길이가 같다면 사전 순으로 정렬 문제 풀이 과정 1. string 타입을 담을 vector 생성 2. 정렬 함수 정의, a.length 와 b.length를 먼저 비교, 같다면 a N; string str; v..
[BOJ 알고리즘, C++] #11650 좌표 정렬하기 BOJ 알고리즘 문제 풀이, 11650번 문제: 좌표 정렬하기 입력받은 좌표들을 우선 조건과 차선 조건으로 정렬합니다. 문제 정렬 함수, Comparison "sort()"는 기본적으로 세 개의 매개변수를 받습니다. 마지막 매개 변수로 사용자 정의 함수를 받습니다. 사용자 정의 함수는 "BOOL" 타입을 반환하는 함수로, i와 j, 혹은 앞 선 원소와 바로 뒤의 원소를 사용자가 원하는 기준으로 오름차순 정렬인지 혹은 내림차순 정렬인지 sort 함수에게 알려줍니다. 풀이 과정 1. 헤더 파일을 추가하고, pair 클래스를 생성합니다. 2. vector를 통해 벡터를 생성합니다. 3. sort 함수를 사용하여, 오름차순으로 정렬합니다. 이때, 정렬 함수..
[BOJ 알고리즘, C++] #1427 소트 인사이드 BOJ 알고리즘 문제 풀이, 1427번 문제: 소트 인사이드 정렬 알고리즘을 사용하여 입력받은 수의 자릿수들을 내림차순으로 정렬합니다. 문제 std::sort() 활용 [BOJ알고리즘, C++]#2751 수 정렬하기 2 [BOJ 알고리즘, C++] #2751 수 정렬하기 2 BOJ 알고리즘 문제 풀이, 2751번 문제 : 수 정렬하기 2 정렬 알고리즘을 사용하여 배열의 원소들을 오름차순으로 정렬합니다. 문제 std::sort() C++의 헤더파일에서 webddevys.tistory.com 풀이 방법 1. "to_string"을 사용하여 입력받은 integer 타입을 string으로 변환합니다. 2. for 문을 사용해서, 각각의 문자를 숫자로 변환( ..
[BOJ 알고리즘, C++] #2751 수 정렬하기 2 BOJ 알고리즘 문제 풀이, 2751번 문제 : 수 정렬하기 2 정렬 알고리즘을 사용하여 배열의 원소들을 오름차순으로 정렬합니다. 문제 std::sort() C++의 헤더 파일에서 제공하는 "sort()"를 활용하여, 배열 혹은 벡터의 원소들을 오름차순, 혹은 내림차순으로 정렬할 수 있습니다. 기본적으로, sort 함수는 오름차순의 정렬을 제공합니다. sort( 시작 주소, 마지막 주소, 정렬 함수) 코드 작성 #include #include using namespace std; int main (){ int N; cin >> N; int arr[1000000] = {}; for(int i =0; i> arr[i]; } // 시작 주소 = 배열 이름..
[Effective C++] #34 인터페이스 상속, 구현 상속, 차이점 Scott Meyers의 "Effective C++"를 통해, C++ 구현에 필요한 개념들을 이해하고, 기록하기 위함입니다. 해당 항목은 6장 "상속, 그리고 객체 지향 설계", 항목 34 "인터페이스 상속과 구현 상속의 차이를 제대로 파악하고 구별하자"에 해당하는 내용입니다. 인터페이스 상속, 구현 상속 class Shape { public: virtual void draw() const = 0;//순수 가상 함수 virtual void error(const std::string& msg);//단순 가상 함수 int objectID() const; //비가상 함수 ... }; class Rect : public Shape{...}..
[Effective C++] #23 비 멤버, 비 프렌드 함수 Scott Meyers의 "Effective C++"를 통해, C++ 구현에 필요한 개념들을 이해하고, 기록하기 위함입니다. 해당 항목은 4장 "설계 및 선언", 항목 23 "멤버 함수보다는 비 멤버 비 프렌드 함수와 더 가까워 지자"에 해당하는 내용입니다. 비 멤버 함수 class WebBrowser { public: ... void clearCache(); void clearHistory(); void clearCookies(); void ClearBrowser();// 멤버 버전의 clear 함수 ... }; void ClearBrowser(WebBroswer& wb)// 비 멤버 버전의 clear 함수 { wb.clearCache();..