반응형

C++11 2

우측값 참조 [C++11]

우측값 참조는 C++11에서 생긴 개념이다. 좌측값 참조는 우리가 흔히 알고 있는 참조를 말한다. 흔히 수식에서 Rvalue, Lvalue로 데이터의 상태를 나타내는데 일반적인 변수는 Lvalue, 상수나 임시객체(값)은 Rvalue가 된다. 예를 들어 int a = 3; int b = 4; int c = a+b; int d = 3;// 여기에서 a, b c, d는 Lvalue가 되고, a+b, 3은 Rvalue가 된다. Lvalue는 수식의 계산이 끝난 후에도 지속적으로 존재하는 변수들이고, 3이란 값이나 a+b는 Rvalue로 임시 객체내에서 존재하다가 식의 계산이 끝난 후 임시객체는 파괴된다. 우측값 참조 우리가 흔이 알고 있는 참조는 좌측값 참조다. 이런 일반적인 참조의 경우는 우측값을 참조할 수..

프로그래밍/cpp 2015.10.24

타입 세이프한 열거 타입 enum class <c++11>

데이터의 집합을 읽어 들일 때 인간은 문자를 컴퓨터는 숫자를 선호한다. 이를 위한 형태가 enum이라는 열거 타입인데, C언어 문법이고, 타입 세이프하지는 않다. 이에 반해 c++11에 등장한 enum class는 타입 세이프한 녀석이다. enum enum은 내부에 열거된 변수에 0부터 차례대로 숫자를 입힌다. 물론 도중에 값을 변경시켜도 된다. 변경된 수 다음 수는 변경된 수를 기준으로 1식 증가된다. enum 활용 예 컴파일은 되지만 문제가 되는 부분은 if(mine==yours)를 비교하는 부분이다. 서로 다른 종류의 값들을 다루지만 서로 비교가 가능하다. 이는 타입 세이프 하지 않다는 것을 반증한다. myType과 yourType은 의도대로 라면 다른 종류의 값들이어야 한다. 하지만 enum은 내..

프로그래밍/cpp 2015.07.07
반응형