C, C++ 18

[C, C++][스크랩] #pragma warning

출처 : http://www.winapi.co.kr/clec/cpp2/18-3-3.htm ------------------------------------------------------------------------------------------------18-3-다.warning컴파일러는 컴파일한 결과를 에러와 경고라는 진단 메시지로 출력한다. 모든 문법이 정확하다면 아무런 진단 메시지도 출력되지 않지만 사람이 컴퓨터가 아닌 한 보통은 한 두 개 정도의 메시지를 받게 된다. 이 중 에러는 명백하게 틀린 것이므로 반드시 수정한 후 재 컴파일해야 하나 경고는 경우에 따라 참고만 하고 무시해도 상관없다. 다음 예제는 별 특별한 동작은 하지 않지만 의도적으로 경고를 많이 받도록 작성해 본 것이다. 예 제..

C, C++ 2013.04.18

[C++] new 연산자에 대해

출처 : http://d.mumbi.net/cpp:new 정의operator new() 를 호출하여 메모리를 할당하고, 생성자를 호출한다.힙( heap )메모리에 할당된다.일반 변수new 연산자를 사용해 메모리를 할당한다. 모두 사용한 후 delete 연산자로 해제해 주어야 메모리 누수( leak )가 생기지 않는다.메모리 할당에 실패시, std::bad_alloc 예외를 던진다. 단, nothrow new 는 0 을 반환한다.int main( void ) { int* p = new int; // 할당 delete p; // 해제 } 배열new[] 연산자를 사용해 메모리를 할당한다. 모두 사용한 후 delete[] 연산자로 해제해 주어야 메모리 누수가 생기지 않는다.new[] 연산자로 할당한 메모리를 d..

C, C++ 2013.02.07

가상함수가 있는 클래스의 이해와 멤버변수의 일괄 초기화 기법

출처 : http://d00d00.egloos.com/93008--------------------------구조체나 클래스나 C++에서는 같이 취급됩니다. 다만 default 영역이 구조체는 private 이고 클래스는 public이라는 점만 다를 뿐입니다. 그래서 클래스라고 하면 그것은 union까지도 포함하는 구조체를 포괄하는 개념입니다. 클래스에는 흔히 가상함수가 존재합니다. 하나의 클래스 내에서 가상함수는 상속관계에 의해 그 함수주소가 변해야 하므로 가상함수 테이블 일명 VTable을 유지하고, 클래스 내에서는 이 VTable(Virtual Table)을 가리키는 4바이트 포인트를 가집니다. C++빌더의 경우는 인스턴스를 생성하면 그 인스턴스의 최초 4바이트가 바로 VTable을 가르키는 포인트..

C, C++ 2013.01.13

C에서 malloc 과 C++에서 new 에 대한 고찰

malloc과 new의 차이점은 '생성자를 호출하며 메모리 생성을 하느냐' '호출하지 않고 메모리 생성을 하느냐' 의 차이이다. 즉, 클래스에 디폴트 생성자를 만들어 놓지 않고인자를 여럿 받는 생성자를 만들었는데,이 클래스 메모리를 배열로 할당받기 위해 더블 포인터로 선언하였을 때!!! ...와 같은 상황이 -_-; 있을 수 있다!!!그럴 때, 보통 디폴트 생성자를 따로 만들어서, 다음과 같이 개발해야 할 것이다. CMem** ppMem;ppMem = new CMem*[5]; for(int i=0; i

C, C++ 2012.10.22
반응형