@ 16. 1 ~ 17. 1/면접관련
-
-
힙 자료구조 추가 설명@ 16. 1 ~ 17. 1/면접관련 2017. 1. 5. 20:08
힙을 구성할 수 있는 자료구조 3가지장단점 설명http://hannom.tistory.com/36 enum eMenu{eInsert = 1,eDel,ePrint,eExit,}; static const int ARRAY_MIN = 0;static const int ARRAY_MAX = 10; class CHeapManager{public:CHeapManager();~CHeapManager(); int returnParent(int nGetData);int returnLeft(int nGetData);int returnRight(int nGetData); int returnPreference(int nGetIndex); int Start(); void Insert();void Delete();void Pri..
-
원형큐 / 해시테이블 의사코드 정리@ 16. 1 ~ 17. 1/면접관련 2017. 1. 5. 07:05
순환 대기열을 위해서는 적어도 두 개의 멤버 변수들이 필요하다. 하나는 대기열의 시작을 가리키는 색인이고,또 하나는 대기열 안에 들어 있는 항목들의 개수 이다.int m_front //시작가리키는 색인int m_count //대기열 안에 들어있는 항목들의 개수 인큐함수최초의 빈 색인을 찾고 거기에 새 항목을 넣기만 하면된다. 최초의 빈 색인은 다음 공식으로 구할 수 있다.index = m_first + m_count;그러냐 이 공식은 index가 배열의 끝을 넘어갈 수가 있다. 만약에 0 ~ 7인덱스를 가지고 있는 크기의 큐라면567을 추가하고 8을 추가하게 될때 m_first + mcount = index가 8이 되므로. (0 + 8) 유효한 색인이 아니다 그래서8을 다시 0인덱스로 해야한다 그래서 나..
-
정적객체의 종류@ 16. 1 ~ 17. 1/면접관련 2017. 1. 5. 00:36
정적 객체(static)는 자신이 생성된 시점부터 프로그램이 끝날 때까지 살아 있는 객체(애초에 스택객체, 힙 기반 객체는 될 수가 없다.)정적 객체도비지역 정적 객체(4가지 경우)와(1 전역객체, 2 네임스페이스 유효범위에서 정의된 객체, 3 클래스 안에서 static으로 선언된 객체,4 파일 유효범위에서 static으로 정의된 객체)지역 정적개체로(1가지)나뉜다.(5 함수 안에서 static으로 선언된 객체)총 다섯 종류가 된다. 아래처럼 다른 소스cpp에 정의된 비지역 정적 객체를 직접적으로 서로 사용하는 짓거리는 하지말자..a.cpp 또는 a.hclass A{public:......}extern A aa; //전역 변수로 설정!!! 이게 위험 이건 이게 비지역 정적객체라고 한다!extern은 외부..
-
객체 생성 및 소멸자에 절대로 가상 함수 호출금지@ 16. 1 ~ 17. 1/면접관련 2017. 1. 5. 00:09
C++ 생성자, 소멸자에서는 가상 함수를 호출하면 절대 안됩니다. 이것은 다른 OOP 언어에서는 지원되는 기능입니다. 하지만 왜 C++에서는 안되는 걸까요? 이유를 알아보도록 하죠. 예를 들어서 설명하겠습니다. 스크롤바 컨트롤를 만들어야 하는데, 스크롤바는 종류가 2개입니다. 수직스크롤바, 수평스크롤바.그렇다면, 추상 스크롤바 클래스를 만들고 거기서 상속받은 수직,수평 스크롤바 클래스를 만드는게 좋겠죠?대부분의 기능은 추상클래스에 구현해놓고 수직,수평 스크롤바의 차이점만 파생 클래스에서 지정할 수 있도록 순수 가상 함수를 만들었습니다.스크롤바 생성자는 Rect클래스를 받는데 Rect클래스 멤버인 left, top, right, bottom 중 수직스크롤바는 top, bottom을, 수평 스크롤바는 lef..
-
컴파일과정 정리 / cpp와 h를 나누는 이유?@ 16. 1 ~ 17. 1/면접관련 2017. 1. 4. 23:35
c언어등은 고급언어로 프로그래머가 작성하기는 쉽지만 cpu가 그대로 이해할 수 없다. 일련의 컴파일 과정을 거쳐서 cpu가 이해할 수 있는기계어로 번역이 되어야 한다. 그 과정을 컴파일 과정이라고 하고, 그 과정을 이해해야지 ㅇ최적화 등에 이용할 수 있다. 컴퓨터 프로그램의 개발은 코드 작성(프로그래밍)부터 시작된다.이렇게 작성된 코드는 사용자(개발자)가 컴퓨터가 수행해 주기를 원하는 내용을 기술한 것이지만, 컴퓨터가 이해할 수 있는 문법(언어)이 아닌 사용자가 이해할 수 있는 문법이다.따라서 작성된 코드는 '컴파일(Compile)' 과정을 거쳐 컴퓨터가 이해할 수 있는 언어로 변환되며, 컴파일된 파일을 '오브젝트 파일(Object File)'이라고 부른다. 일반적으로 하나의 프로그램은 여러 개의 오브젝..