전체 글(140)
-
Design Pattern - Command
요청을 객체의 형태로 캡슐화하여 사용자가 보낸 요청을 나중에 이용할 수 있도록 매서드 이름, 매개변수 등 요청에 필요한 정보를 저장 또는 로깅, 취소할 수 있게 하는 패턴이다. command : 실행될 요청에 대한 인터페이스. execute 메서드를 가상함수로 선언해 최상위 부모클래스로 만듦. Concrete Command : 실제로 실행될 요청 기능을 구현한 클래스. command 클래스를 상속 받아 execute 메서드를 구현. receiver : Concrete Command에서 구현된 기능을 실행하기 위해 사용하는 클래스. invoker : 기능 실행을 요청하는 호출 클래스. client : 어느 시점에 어느 커맨드를 실행할지 결정하는 객체. #include #include #include usi..
2020.01.03 -
Design Pattern
프로그램 설계시에 자주 반복되고 나타나는 문제들을 위해 고안된 프로그램 패턴. 3가지의 구조로 구성됨. 문맥 : 문제가 발생하는 상황. 문제 : 해결해야될 제약 사항과 상황, 디자인 이슈들, 인과관계 등. 해결 : 문제를 해결하기위한 설계요소와 요소사이의 관계, 책임, 협력등. 구현법이나 언어에 종속되지않은 템플릿. 생성 패턴 객체 생성에 대한 패턴. 객체 생성, 조합들을 캡슐화해 객체의 생성, 변경에 프로그램 구조가 영향 받지 않도록 유연성을 제공하는 패턴들. ex) 싱글턴(singleton), 프로토 타입(Prototype), 빌더(Builder), 추상 팩토리(Abstract Factory), 팩토리 메서드(Factory Method) 구조 패턴 클래스, 객체를 조합해 더 큰 구조를 만드는 패턴. ..
2020.01.03 -
c/c++ 구조체 / 클래스 (3)
구조체와 클래스의 차이는 멤버 함수, 접근지정자이다. 접근 지정자 : 멤버 변수, 멤버 함수에 대해 객체 외부에서 직접적으로 접근하지 못하도록 제한할 수 있는 키워드. 외부에서 직접적으로 변경하면 안되는 멤버변수에 대해 외부 접근을 간접적으로나 아예 막는 경우를 생각할 수 있다. public 키워드 : 외부 및 상속관계 접근을 전면 허용하는 키워드. 이 키워드 이하에 작성된 모든 멤버변수, 함수들은 외부및 상속관계에서 접근 가능. protected 키워드 : 외부 접근은 public. 상속을 받은 파생클래스로부터의 접근 가능. private 키워드 : 외부 접근 불가. 파생클래스 에서도 접근 불가. friend 클래스,함수에서 접근 가능. 기본적으로 아무 키워드도 적지 않는다면 private 상태로 간주..
2020.01.03 -
c/c++ 구조체 / 클래스 (2)
클래스 구조체의 확장판이다. 멤버 변수를 포함해 멤버 함수까지 작성할 수 있다. 어떠한 물체를 속성과 기능으로 나누어 속성은 멤버 변수로 기능은 멤버 함수로 나타낸다. 이를 클래스 라고 부른다. 클래스를 이용해 구체화 하면 이를 오브젝트 = 객체 라고 부른다. 설계도 - 건물 빵틀 - 빵 요런 관계. 이런식으로 선언한다. class square { public: int topX, topY; int bottomX, bottomY; private: int size; public: square(){} ~square(){} int area() { return (topX - bottomX)*(topY - bottomY); } }; 멤버함수는 클래스 선언안에서 선언할 수 도 있고, 헤더와 cpp를 나누면 따로 선언..
2020.01.03 -
c/c++ 구조체 / 클래스 (1)
구조체 프로그래머가 정의할수 있는 변수 타입이다. 여러개의 변수를 하나의 변수처럼 묶을 수 있다. struct point //구조체 자료형 { int x; //멤버 변수 int y; }; typedef struct point { int x; int y; }PT; //구조체 별칭 = 구조체 자료형 구조체 멤버 변수에 접근하는 방법 구조체 변수 뒤에 . 을 찍고 멤버 변수를 적으면 접근. 멤버변수 초기화. PT p; //멤버변수 개별 초기화 p.x = 10; p.y = 5; PT p2 = {.x = 10, .y = 7}; //멤버변수 동시 초기화(명시) PT p3 = { 15 ,5 };//멤버변수 동시 초기화(암시) 명시적으로 초기화 할때는 상관없지만. 암시적으로 초기화 할때는 멤버변수 순서, 자료형을 꼭 ..
2020.01.02 -
c/c++함수
함수란 수학에서의 함수와 비슷한 내용이다. 일정한 입력에 대해 필요한 기능을 통해 어떠한 출력을 내놓는 기법이다. 반환자료형 함수 이름 ( 매개 변수들 목록) { 함수 몸체 필요한 기능 return 출력할 변수; } 매개변수는 입력할 변수이고 반환자료형은 필요한 경우에 필요한 자료형으로 작성하고 결과 반환이 없다면 void 형으로 작성한다. 몸체의 끝에서 return으로 반환형과 같은 자료형으로 작성해야한다. 함수도 변수처럼 먼저 선언한뒤 정의하는 방식이 가능하다. 파일의 맨 위에 반환형과 함수이름, 매개변수를 작성하고 아래에서 함수 몸체와 같이 기능을 작성한다. 함수 오버로딩 같은 이름과 기능의 함수를 다른 자료형, 매개변수로 사용하는 기법 int형의 더하기 함수를 float형, double형, 사용자..
2020.01.02