본문 바로가기

프로그래밍

[C++]클래스와 구조체 C++로 넘어오면서 struct와 class는 그 역할이 매우 동등해졌다. 실제 동작면에서는 그렇다. ( 아니 확인해보지는 못했다. C와 같이 struct의 변수들은 주소공간에 차례차례 배치되어 있는지 ? ) 단지 차이가 있다면 struct는 기본적으로 필드가 public이고 class는 기본적으로 필드가 private랄까. 아무래도 C 스타일에서 주로 쓰던 struct의 형태로 C++에서도 사용하게 되었다. 필드마다 Get, Set을 사용하기 싫을 때 struct를 애용하였다. struct에는 별다른 함수를 지니려고 하지 않았고, 다만 생성자와 소멸자는 간간히 쓰는 편이었다. 좀 필드가 많아질 가능성이 보이면 class로 바꾸는 행태를 보이곤 했다. 오늘 하나의 클래스에 구조체를 만들고 구조체에 기능을.. 더보기
Foo Bar Foo와 Bar의 대한 내용이 궁금해서 찾아봤더니.. 무려 RFC에 나와있군요;;; FUBAR (Fucked Up Beyond All Repair)에서 유래 되었다는 foobar의 어원에 대한 RFC 입니다. foo의 어원, RFC3092 KLDP에서 인용. 더보기
여기서 교과서적인 이야기 하나. 여기에서 교과서적인 이야기를 하나 하고 넘어가야 할 것 같다. 루프 안에서 항상 선행 증가(++c)를 사용하는 것이 좋은 이유는 무엇일까? 효율성 때문이라는 것이 정답이다. 후행 증가 연산자(c++)는 변수의 이전 값을 돌려주므로 이전 값을 담을 임시적인 변수를 만들고 파괴하는 과정이 일어나게 된다. 후행 증가로도 선행 증가와 동일한 방식의 루프를 만드는 것이 가능하지만, 후행 증가를 사용할 특별한 이유(위의 예제에 나온 것 등)가 없다면 항상 선행 증가 또는 성행 감소 연산자를 사용하는 것이 바람직하다. - Mark Deloura, Game Programming Gems, 정보문화사, 2001. ... 생각해보면 너무 당연한 이야기인데.. 저런 이유일 것이라고는 생각지 못했다. 항상 후행 증가 연산자만.. 더보기
물체로 알아보는 객체 지향 1 서 론 이 글은 객체 지향의 개념을 잘 아는 사람에게는 객체의 개념을 다시 생각 해볼 기회를 가져보기 위해, 객체 지향의 개념을 잘 모르는 사람에게는 객체의 개념을 파악하기 위해 쓰여졌다. C의 기본적인 문법을 알고 있지 않다 하더라도 객체라는 것을 이해하는 데 무리가 없도록 설명할 것이다. 객체 지향은 90년도에 나온 개념으로 그렇게 새로운 개념은 아니다. 하지만 일반인이 쉽게 접할 수 없는 개념임에는 틀림없다. 본 저자가 C++ 및 Java를 약 3년간 사용해보면서 생각한 바와 함께 적어보고자 한다. 여기에서는 OOP하면 항상 따라오는 개념(정보 은폐, 캡슐화, 다형성)을 설명하기 보다는 더 직관적인 내용으로 설명하고자 한다. OOP라는 개념을 만든 사람의 생각과는 꽤 다를지도 모르겠다. 어디까지나 .. 더보기