분류 전체보기(599)
-
객체 복사(effective c++ 12)
좋은 객체 설계안쪽 부분을 캡슐화한 객체 지향 시스템에서잘 된 설계는 객체를 복사하는 함수가 딱 둘만 있는 것이다!이를 통틀어 복사 함수(copting function)이라 한다. 컴파일러는 디폴트 복사 생성자를 제공한다.데이터를 빠짐없이 복사하는데 충실하다. 사용자가 직접 만들면 어떤 문제가?!모든 멤버를 완전히 복사하지 않을 때(부분 복사 - partial copy) 경고가 없다. 상속 문제문제점기본 클래스의 맴버 변수들이 초기화 되지 않는다. 해결복사생성자 - 기본 클래스의 복사 생성자를 호출한다.대입 연산자 - 기본 클래스 부분을 대입한다. 복사 생성자와 복사 대입 연산자의 상호 이용?절대 하지 말자!
2015.07.26 -
[면접] 최근 면접을 다니며..
요즘 면접을 다니며 드는 생각은 아직 갈 길이 멀고공부가 부족하다는 것을 많이 느낀다. 때는 바야흐로 6개월 전으로 돌아가면,http://hmjo.tistory.com/entry/C게임회사-1차-면접-탈락 한 게임 회사에 가서 면접을 탈락하고 적었던 글이 있다.사실 이때는 조금 시건방진 생각을 가지고 있었던 것 같다.4년제 국립대라는 타이틀만 믿고 열정과 패기, 관심을 보여주면간단히 입사할 수 있을 것이라는 낙관적인 생각을 하고 있었던것 같다.긍정이 과하면 낙관이 되고 낙관이 되면 그것은 재앙이다. KTM 아카데미를 들어오며 스승님에게 혼이 나며 마음을 많이 다잡았다.그렇게 교육과정이 끝나가고 마침내 여러 회사들에서 면접을 보고 있는데..6개월 전에 면접에 임하던 때와는 사뭇 느낌이 다르다.물론 실력도 ..
2015.07.25 -
(작성중)배열 vs 다형성(more effective c++ 03)
다형성기본 클래스 객체의 포인터나 참조자를 통해 파생 클래스 객체를 조작할 수 있다.이런 포인터와 참조자를 다형성을 가지고 있다라고 말한다.마치 여러개의 타입처럼 쓰인다는 말이다. 파생 클래스 객체의 배열(array)을 기본 클래스 포인터나 참조자를 이용해 다형적으로 사용하려고 하면?.. 이것은 문제!- 컴파일러는 배열에 들어있는 각 객체의 크기가 sizeof(base 객체)라고 가정한다.(실제로는 derived 객체여야 하기때문에 문제가 생긴다.)- 컴파일러는 배열의 크기만큼 메모리를 읽기 때문에 결과를 예상할 수 없다.
2015.07.25 -
C++ 캐스팅(more effective c++ 02)
프로그래밍계의 1급 기피대상.goto와 cast는 재앙이라고 한다... C 스타일 캐스트?C 스타일의 캐스트는 어떤 타입을 다른 타입으로 아무 생각 없이 바꿔주는 괴물!- 캐스팅 다양성이 부족(상수성만 바꾼다던지. 파생 클래스 객체에 대한 포인터로 바꾼다던지?)- 눈으로 찾아내기 힘든 버그가 많다. static_castC 스타일 캐스트와 같다. const_cast상수성(constness)나 휘발성(volatileness)을 없애는 목적으로 사용하는 캐스팅 dynamic_cast상속 계층 관계를 가로지르거나 하향시킨 클래스의 타입으로 안전하게 바꿔주는 캐스팅제약 - 상속 계층 구조를 오갈때만 사용, 가상 함수가 없는 타입에는 적용할 수 없다.* 어떤 객체가 차지하고 있는 메모리의 시작부분을 찾는 데에도 쓴..
2015.07.25 -
객체 초기화(effective c++ 04)
서론C++의 객체 초기화는 중구난방!물론 규칙은 있다.C++의 C 부분은 사용하고 있으며 런타임 비용이 소모될 수 있는 상황이라면 초기화 된다는 보장이 없다.C가 아닌 부분은 때때로 달라진다.예시) 배열 vs 백터 모든 것을 해결하는 방법!모든 객체를 사용하기 전에 항상 초기화 하는 것. 생성자대입(assignment)과 초기화(initialization)을 구분하자. 1234567891011121314151617181920212223242526272829303132333435363738394041424344// ConsoleApplication7.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다.//// 작성자 조민혁 #include "stdafx.h"#include class MyClass{p..
2015.07.24 -
프라우드넷
면접을 통해 알게 된 게임 서버 엔진이라고 한다. 개요프라우드넷(ProudNet)은 대한민국의 넷텐션에서 개발한 온라인 게임을 위한 네트워크 서버 엔진이다. 소규모 및 대규모 다중 사용자 온라인 게임을 위한 서버 및 네트워크 엔진이다. 특징사용 편의성보다는 성능, 안정성, 유연성에 초점이 맞추어져 있다.상용화 서비스중인 모바일 게임의 서버 하드웨어 1개당 동시접속자 6만명 이상을 처리하기도 했다. 엔진을 사용하는 게임[편집]《레이븐》 (2015년, 모바일) - 개발:STPlay,배급:CJ E&M《몬스터길들이기》 (2013년, 모바일) - 개발:씨드나인게임즈,배급:CJ E&M《세븐나이츠》 (2014년, 모바일) - 개발:넥서스게임즈《마비노기영웅전》 (2009년, PC) - 개발:넥슨, 배급:넥슨《라그나로크..
2015.07.24