본문 바로가기

전체 글

(121)
가상함수 Q> 이런 결과가 나오는 이유 ? 왜냐하면 , aboutMe 함수가 어떤 타입인지는 컴파일 시간에 결정되기 때문이다. 이러한 메커니즘을 정적 바인딩 (static binding)이라고 한다 . Q>만일 Student 클래스에서 구현된 aboutMe를 호출하고 싶다면? => Person 클래스의 aboutMe 메서드를 virtual로 선언해야한다. //Virtual 가상함수를 통해 제일 하위 클래스의 aboutMe를 찾아 실행#include#includeusing namespace std; #define NAME_SIZE 50 //매크로 정의 class Person {int id;//모든 멤버는 기본적으로 privatechar name[NAME_SIZE]; public:virtual void aboutMe..
클래스와 상속 [1]의 경우 [2]의 경우 [3]의 경우 [4]의 경우 C++에서 모든 데이터 멤버와 메서드는 기본적으로 private 이다. public 키워드를 사용하면 그 값을 변경할 수 있다. #includeusing namespace std; #define NAME_SIZE 50 //매크로 정의 class Person {int id;//모든 멤버는 기본적으로 privatechar name[NAME_SIZE]; public:void aboutMe(){cout
많이 쓰이는 디자인패턴 다이어그램 그리기 https://1ilsang.blog.me/221104669002 [생성패턴] [1].싱글톤 패턴(singleton)=어떤 클래스가 오직 하나의 객체만을 갖도록 하며, 프로그램 전반에 걸쳐 그객체 하나만 사용되도록 보장해야한다. -정확히 하나만 생성되어야 하는 전역객체(global object)를 구현해야 하는 경우에 특히 유용하다. public class Restaurant{private static Restaurant _instance=null;protected Restaurant() { . . . }public static Restaurant getInstance() { if(_instance==null){ _instance = new Restaurant(); } return _i..
[백준14627]파닭파닭 종류:이분탐색주의점: 범위에 주의 문제는 요기 ->https://www.acmicpc.net/problem/14627 #includeusing namespace std; long long int N, C;//파의개수, 주문받은 파닭의 수 long long int arr[10000002];long long int ans;long long int ramen;long long int sum = 0;long long int Func(){long long int left = 1;long long int right = 1000000000;while (left ans) ans = mid;left = mid+1;}else{right = mid - 1;}}return sum - ans*C;}int main(){scanf..
메모리관리 1.메모리 관리의 개요 1)메모리 관리의 개념과 정책 :메모리 관리는 프로세스들을 위해 메모리 할당, 제거, 보호하는 활동 [1].반입정책(fetch policy) 프로세스를 언제 메모리로 적재할 것 인지를 결정하는 행위 [1].1 요구 반입 (demanded fetch) -사용자 또는 프로세스의 요구가 있을때 주기억 장치로 적재하는 정책으로 정확하지만 시간 지연 발생 [1].2 예상 반입 (anticipatory fetch) - 사용자 또는 프로세스의 요구가 있기전에 필요한 것을 미리 보고 미리 주기억장치에 적재하는 정책으로 시간을 감소시키지만 부정확함 [2].배치정책(placement policy) 주기억 장치의 어느 공간으로 적재할 것인지 결정하는 행위 [3].재배치 정책(replacement po..
flyweight pattern 1.flyweight 정의: 가벼운것 소프트웨어 공학에선 메모리 사용량을 말할때 많이 사용하면 무겁다라고 말하고, 적게 사용하면 가볍다고 한다.따라서 flyweight 패턴은 메모리를 가볍게 해준다고 짐작할 수 있다. 자바에서 인스턴스를 생성할 때는 new를 사용한다. 2.목적 인스턴스 생성 多 ->new 인자 多->메모리 사용량이 多 flyweight 패턴은 메모리 사용량을 줄이기 위한 방법으로, 인스턴스를 필요한 대로 다 만들어 쓰지 말고, 동일한 것은 가능하면 공유해서 객체 생성을 줄이자는 것이다. Flyweight 패턴은 객체 공유를 통해 자원 사용량을 줄이기 위한 설계라고 할 수 있다 3.구조 flyweight 객체를 생성할때 직접적으로 flyweight 생성자를 부르는것 대신에 factory ..
iterator
chain of responsibility pattern 참고블로그 http://chabooms.tistory.com/1