본문 바로가기

C++

(5)
[읽은 글] const correctness https://herbsutter.com/2013/05/24/gotw-6a-const-correctness-part-1-3/https://herbsutter.com/2013/05/24/gotw-6b-const-correctness-part-2/https://herbsutter.com/2013/05/28/gotw-6b-solution-const-correctness-part-2/ * 번역이 아니라 이해하고 정리한 내용입니다. 따라서 원 글의 의도가 전달되지 않을 수 있으며, 수정 될 수 있습니다. [ ] https://herbsutter.com/2013/05/24/gotw-6a-const-correctness-part-1-3/ 1. shared variableShared variable이란 하나 이상의 t..
[code reading] Media query in webkit (linkElement) [media query 간략 소개]Media query는 media의 종류에 따라 특정 CSS 스타일을 적용하고자 할 때 사용하는 CSS 스펙 가운데 하나입니다.(http://www.w3.org/TR/css3-mediaqueries/) media query에 대한 article : http://html.nhncorp.com/blog/42284 다음글 : Media query in webkit (style element)그 다음글 : Media query in webkit(import/media rule) 예를 들어 아래는 대표적인 media query의 예입니다. (이 글에서 코드리딩할 방법입니다.) ### html screen과 print는 가장 많이 알려진 미디어의 종류(type)입니다. 또는 아래처..
constructor/destructor에서 virtual method의 호출 virtual키워드를 사용해 child 객체의 메소드들을 호출할 수 있다는 것은 C++을 공부한 사람이라면 다들 알고 있는 사항이다.예를 들어, 아래의 코드에서는 child의 call method가 호출된다.### c++ class parent {public: virtual void call();};class child : public parent {public: void call();};int main(){ parent* p = new child; p->call(); // child의 call이 호출됨 } 그렇다면 child의 instance는 virtual로 선언된 메소드들에 대해서 항상 child를 호출하는가?오늘 그렇지 않다는 것을 배웠다. 아래 예제를 보자.### c++#include stati..
[C++] new는 null을 return하는가? 작년에 malloc vs calloc이라는 글을 적었습니다. 그때는 급작스런 궁금증때문에 인터넷 검색+발번역을 했는데, 이번에는 new에 대해 신경쓰지 못했던 부분을 알게되었습니다. 흔히, new 나 malloc으로 메모리를 할당받고 난 후, 제대로 메모리가 할당되었는지 체크를 하지않는 경우가 많습니다. 하지만, 메모리가 부족한 상황은 얼마든지 나올 수 있으므로 체크를 해야 맞겠죠. 그렇다면, 어떻게 체크해야 할까요? 임베디드의 세상에서 malloc으로 메모리를 할당받은 후에는 null인지 확인하는 것이 보편적이라는 이야기를 들었습니다. 그렇다면 new는? C++을 배울때 제대로 공부하신 분들은 이 질문의 답을 정확히 알것입니다. 네, new 는 0을 반환하지 않습니다. 일부러 그렇게 만들지 않는한 말이..
Header안에 static 변수 C++에서 static을 다소 헷갈리게 만드는 요소가 있긴 하지만, header에서 static 변수를 선언해서는 안된다. static : 지역 변수임을 알려주는 키워드 (C++ 클래스 내부의 static과 다른 의미이다.) 헤더에서 static을 선언하면 어떤 일이 일어날까? 간단한 예제를 만들어보았다. (컴파일 없이 손코딩했음) common.h static int gvalue = 10; main.c #include #include "common.h" #include "b.h" int main () { printf("%d\n", gvalue); call_b(); printf("%d\n", gvalue); return 0; } b.h void call_b(); b.c #include "common.h" ..