C++

C++/개인 공부

가상 함수와 오버라이딩

가상 함수와 오버라이딩 오버라이딩이란 파생 클래스에서 기본 클래스에 작성된 가상함수를 재작성하여, 기본 클래스의 가상 함수를 무력화 시키는 것이다. 기본 클래스 포인터를 사용하든, 파생 클래스 포인터를 사용하든 파생 클래스에 오버라이딩된 함수가 항상 실행된다. 오버라이딩시에 virtual 키워드를 사용하는데, 이는 자신의 호출바인딩을 실행시간까지 미루도록 지시한다. 함수 재정의와 다르다! 함수 재정의는 컴파일 시간 다형성을 실현하고, 오버라이딩은 실행 시간 다형성을 실현한다. 오버라이딩 사례 #include using namespace std; class Base { public: virtual void f() { cout

백준

BOJ - 10989 (C++)

https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 어떻게 풀어야 할까? 아마 이 문제를 처음 접할 때, 선택 정렬 알고리즘을 사용할 것 이다. 그러면 틀린다. 왜냐면 배열을 int 형으로 잡고 10,000,000 계산한다고 가정했을때, 보수적으로 잡아도 40MB의 메모리가 소요되기 때문이다. 선택 정렬로 풀면 이중 for문이 들어가게 된다. -> 시간 초과에서 걸린다. 그렇다면, sort()함수를 이용해서 풀면 될까? -> 메모리 초과로 불가능 그래도 시간 초과가 ..

백준

BOJ - 1008(C++)

https://www.acmicpc.net/problem/1008 1008번: A/B 두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오. www.acmicpc.net #include using namespace std; int main(void) { double a; double b; cin >> a; cin >> b; cout a; cin >> b; cout

Jminu
'C++' 태그의 글 목록