분류 전체보기(599)
-
[C++] 가상 함수 테이블
1. 서론논란의 중심! 가상 함수 테이블!!!말도 많고 탈도 많은 가상 함수 테이블..아카데미에서 오버라이딩보다 더 심각한 뜨거움 감자가 된 가상 함수 테이블! 2. 토론우리 조에선 이 가상 함수 테이블에 대한 이견이 그렇게 많지 않았다.교수님이 말씀하신 1객체 1가상 함수 포인터 1가상 함수 테이블!모두 수긍하는 부분이어서 더 이상 논의하지 않았다.클래스의 함수들은 정적 바인딩이 되어 메모리상에 올라간다. 컴파일러에 의해 바인딩이 된 클래스는 서로 다른 가상 함수 테이블이 생긴다.(가상 함수가 있다면)(하지만 이 방법과 구현된 형태는 모두 컴파일러가 관리하므로 정확하게 알 수 없다.)여기서 가상 함수 테이블이 기존 부모의 테이블에서 '복사'한다는 개념때문에수업 시간을 넘어가며 열띤 토론이 되었던 것이다..
2015.04.01 -
국기 정규수업 20일차 메모
20일차상속과 다형성상속 - 이미 정의되어 있는 클래스의 모든 특성을 물려받아 새로운 클래스를 작성하는 기법다형성 - polymorphism; 다양한 형태를 가짐다양성 - 다양한 종류 상속과 다형성을 묶어주는 것이 virtualvirtual이 없다면 다형성이 구현될 수 없다. 용어 상위 클래스, base 클래스, 기본 클래스하위 클래스, derived 클래스, 파생 클래스root 클래스 - 최상위, 기본 어떤식으로 상속받을 것인가?public상속 - 기본 클래스의 모든 속성을 그대로 이어 받는 상속. 기본 파생.protected상속 - protected 이하의 속성들의 모든 접근 제어를 protected로 이상으로 만든다. 기본 클래스의 public을 protected로 만듬으로써 외부에 가리는 역할을 ..
2015.04.01 -
[청승] 집 냄새
집에 못 간지도 어느새 한 달 반 정도.. 얼마 전에 여름옷을 엄마보고 보내라고 했다. 좀 전에 박스에서 아끼는 펜콧 피케 셔츠를 꺼냈다. 문득 냄새를 맡으니.. 내 방 냄새가.. 하.. 내 방 냄새가 이렇게 이상한 기분을 느끼게 할줄이야.. 추억과 기억은 원래 오감 적으로 형성되는 것이다. 눈으로 본 것만 기억에 남는 것이 아니다. 그 오감 중 후각에서 오는 것이 가장 묘한 느낌인 것 같다. 그러면서 엄마 생각, 아빠 생각, 동생 생각, 누렁이 생각. 군대에서 많이 느꼈던 감정이지만 그때만큼이나 가족이 보고 싶다. 열공해서 금의환향해야지!
2015.04.01 -
RTTI , 캐스팅
1. RTTI?RTTI (runtime type information)RTTI는 C++ 컴파일러 내에 포함되어 있는 기능으로서, 객체의 유형을 실행 시에 결정할 수 있도록 허용한다. C++이나 다른 고급언어의 컴파일러에서 가지고 있는 이 기능은, 메모리 상주 객체에 유형 정보를 추가한다. 이렇게 함으로써, 실행 시스템은 객체의 캐스트가 유효한 것인지를 확실히 하기 위해, 그 객체가 특정 유형인지를 결정할 수 있다. 객체 기술의 기본 원리 중 하나가, 실행시 객체를 동적으로 변화시킬 수 있는 능력인 polymorphism이다. - 텀즈 http://www.terms.co.kr/RTTI.htm 2. 구성 요소type_info 구조체 : 실행 시간에 확인하고자 하는 타입에 대한 정보 저장 구조체.typeid ..
2015.03.31 -
오버라이딩(Overriding)
1. 서론아카데미에서 오버라이딩의 개념이 논쟁이 되었다. " 부모 객체에서 자식 객체에게 virtual 가상 함수가 없이 자식 객체에서 이름이 같은 함수를 정의하는 것이과연 오버라이딩이라고 봐야 하는가? " 이것에 대한 논쟁이 끊이지 않았는데, 많은 웹이나 블로그에서 저런 경우를 오버라이딩이라고 정의하고 있다.책들도 거의 애매한 내용으로 정의하는 경우가 많다."부모 클래스의 함수를 자식 클래스에서 재정의 하는 것이 오버라이딩"이라고 해놓고정작 저런 경우엔 오버라이딩이라는 개념에 대해 명확하게 나와있지 않다.교수님은 'virtual가 사용되지 않은 것은 절~!!!대 오버라이딩이라 할 수 없다.' 라고 말씀하셨다.그래서 이런 조사 숙제가!! KTM 8기 동기 성국이가 스트롭스트룹님 용어사전에 원문을 해석한것..
2015.03.31 -
가변인자
1. 가변인자란?인자의 개수가 변한다는 뜻을 의미한다.같은 함수명이어도 파라미터를 2개, 3개 쓸 수 있다. 2. 자주 사용하는 printf의 원형_Check_return_opt_ _CRTIMP int __cdecl printf(_In_z_ _Printf_format_string_ const char * _Format, ...); 내부적으로 __cdecl 호출규약을 사용하고 있다.... 부분이 가변 인자, 가변 파라미터를 의미한다. 3. 가변인자를 사용하려면?필요 헤더 - stdarg.h조건 - 최소 1개 이상의 고정 인수가 필요하다. ... 파라미터는 순서 상 가장 마지막에 있어야 한다. 가변인자 함수에서 사용되는 변수들을 알아야한다. va_list - char*로 정의되어 있으며 각 인자의 시작 주소..
2015.03.31