[Computer Science]

[Computer Science]/[객체지향설계]

[객체지향설계] 11/14 이론

Introduction to Template compile time : run time polymorphism 컴파일 타임과 런타임 폴리모피즘에 대하여 Generic Programming using template 템플릿을 이용하면 제네릭 프로그래밍을 사용할 수 있다. Function overloading 도 컴파일 타임 폴리모피즘이다. 두 함수를 정의한 상태에서 컴파일 타임 폴리모피즘으로 구체화되면 컴파일러가 해당 함수가 어떤 함수인지 Linking을 해준다. Resolution rule에 의해서 결정된다. 컴파일러에 의해서 결정. 템플릿도 마찬가지로 compile time polymorphism이다. 함수를 템플릿으로 정의했을 때, 타입 네임을 T로 사용할 수 있다. 재료들을 가지고 함수를 만들게 된..

[Computer Science]/[객체지향설계]

[객체지향설계] 11/7 이론

STL: Standard Template Library 4가지로 분류가 된다. containers Functions Iterator Algorithms Sequence containers Container adapters Associative containers Sequence containers : Array 어레이는 길이가 고정되어 있다. C와는 다르게 자신의 길이를 알고 있다. C에서는 함수에 배열을 인자로 받게 될 때, 배열의 길이도 인자로 줬어야 했다. 하지만 C++은 그렇지 않다. 버퍼 오버플로우 : 배열 길이는 3인데 인덱스 3이나 4를 원할 때, 메모리 접근 오류 STL의 Array를 사용하면 안전하게 사용할 수 있다. Sequence containers : Vector 어레이는 길이가 고..

[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의 ..

DevCat_
'[Computer Science]' 카테고리의 글 목록 (2 Page)