분류 전체보기

[Computer Science] -보호글/[객체지향설계]

[객체지향설계] 10/31 이론 -Design Pattern

디자인 패턴이란? 디자인 패턴의 3가지 분류 싱글톤 이 객체가 딱 한 번만 생성하게 하고 싶을 때 하는 디자인 패턴. Ex) 게임을 총괄하는 매니저, 게임 보드라는 게 하나만 있으면 좋겠다 할 때, 항상 이미 만들어진 객체를 주고, 새롭게 만들지 않음. 이 클래스의 인스턴스가 하나만 만들어지도록 보장해야함. -> 클래스의 생성자를 private으로 만든다. 객체가 아무곳에서나 생성되게 하지 않는다. 그래도 아예 막아버리면 안 되고, 생성은 해야한다. 글로벌 액세스 포인트를 만들어서 객체 생성을 제어한다. Static 키워드를 이용한 멤버필드, 멤버펑션으로 생성자를 만든다. 생성자를 만들거나, 이미 있는 객체를 반환하거나 한다. java는 복사를 명시적으로 해야하지만, C++은 단순히 선언만 해도 복사가 ..

[Computer Science] -보호글/[객체지향설계]

[객체지향설계] 10/17 이론

오늘까지가 중간고사 범위 fuction overriding 부모 클래스의 함수를 자식 클래스가 오버라이딩 한다. 스태틱 디스패치와 다이나믹 디스패치 스태틱이라는 것은 컴파일 타임이 시작 전인 것이다. 어떤 함수를 사용할 것인지 컴파일러가 정해준다. 컴파일러가 아는 것은 타입밖에 모른다. 스태틱 캐스트. 캐스트를 사용하면 우리가 원하는 클래스의 함수를 불러올 수 있도록 한다. Developer 타입을 확인하고 Developer 타입의 함수를 호출하게 된다. 다이나믹 캐스트를 이용하자. Employee를 따라가서 Developer를 찾고, 각각의 함수가 원하는 함수로 발동되게 된다. 실습 때 한 게 이것이다. 만약에 디벨로퍼 리서쳐 말고 다른 하나의 타입을 클래스를 추가하고, 그 타입도 임플로이를 상속받는 ..

[Computer Science] -보호글/[시스템프로그래밍]

[시스템프로그래밍] Bomb Lab

시작 전에!gdb bomb 으로 bomb 실행 파일로 gdb를 실행하도록 한다.이후 (gdb) 이렇게 터미널 창에서 입력할 수 있게 되면제일 먼저!(gdb) b phase_1(gdb) b phase_2(gdb) b phase_3(gdb) b phase_4(gdb) b phase_5(gdb) b phase_6(gdb) b explode_bomb으로 explode_bomb이 실행되서 폭탄이 터지기 직전에 브레이크 포인트를 걸어준다. 만약 저게 실행 되었다면 k를 눌러서 프로그램을 종료 후 다시 시작하도록 한다. 시작은 (gdb) r 로 프로그램을 시작한다.Breakpoint 16, 0x0000000000401509 in explode_bomb ()(gdb) k꼭이다!!! 이제 Phase 1 이다.이제 실행을..

[Computer Science] -보호글

[기초프로젝트랩] 09/26 이론

보호되어 있는 글입니다.

[Computer Science] -보호글/[객체지향설계]

[객체지향설계] 09/26 이론

LHS and RHS 어싸인먼트가 왼쪽/ 오른쪽에 있는 것을 구분/ x=10 LHS : x RHS : 10 구분짓는 이유는 결과적으로 값이 할당되기 위해 존재-LHS / 값이 꺼내지기 위해 존해 RHS. z = x + y | x의 값을 꺼내고, y의 값을 꺼내고 둘을 더한 후 z에 값을 넣는다. 기본적으로 모든 변수는 주소값을 가지고 있다. 주소는 메모리 주소를 뜻한다. &는 해당 주소값을 계산하는 연산자. &x : 0 , &y : 4 x와 y의 주소값은 각각 0번과 4번 주소이다. x가 RHS에 있을 경우, x의 주소에 저장되어 있는 값을 꺼내온다. x가 LHS에 있을 경우, x의 주소에 값을 저장한다. 포인터 특정 변수 앞에 *을 찍는다. *는 따라간다. RHS에 *이 찍혀 있다면, *y라면 99의 ..

[Computer Science] -보호글/[객체지향설계]

[객체지향설계] 9/19 이론

Class Declaration 클래스 선언 문법. Object creation 객체 생성 암시적-명시적으로 생성할 수 있다. 문자열 인자만을 받는 객체라면 그냥 Car car = std::string("mycar") 도 가능하다. (암시적) Car car = (Car) "mycar"도 가능. (명시적) Access Modifier private 밖에서는 접근할 수 없는 나의 것. 객체만이 갖고 있는 것. protected private이 더 강력하다. 가족을 지킨다. 외부에는 공유하지 않지만 자식(child)에게는 줄 수 있다. - 상속에 관련함. public 누구나 접근할 수 있다. 일반적으로 간단하게 만든다면, 모든 멤버 펑션은 퍼블릭, 멤버 필드는 프라이빗. 외부에 공개/비공개를 구분. 실행하다 ..

[Computer Science] -보호글/[객체지향설계]

[객체지향설계] 9/12(화) 이론

c++의 역사 비아르네 스트로우스투루프가 창시. 처음에는 C언어의 확장판 개념으로 사용하게 되었다. 절차지향이던 C언어에 클래스/상속/... 이런 것들을 넣어서 언어를 확장했다. 1982년도에 C++로 이름이 바뀌었다. (이전에는 C with classes) 1985년도에 C++가 어떤 언어인지 배포되고, implementation(컴파일러)도 생겼다. C++ 디자인은 객체 지향 프로그래밍이라는 개념이 있다. C언어의 확장판이 C++인가? C언어의 Syntax가 매우 비슷하다. 어떻게 실행되는지도 유사하다.(Similar Sementics) 메모리 관리도 매우 비슷하다. 현재는 C의 확장이라고 보기에는 어렵다. 왜냐하면, C의 컴파일러로 컴파일 실행 했을 시 C++ 코드의 실행이 다를 수 있다. 컴파일러..

DevCat_
'분류 전체보기' 카테고리의 글 목록 (7 Page)