언어

[Effective C++] #27_캐스팅은 절약하고 또 절약하자! Scott Meyers의 "Effective C++" 를 통해, C++ 구현에 필요한 개념들을 이해하고, 기록하기 위함입니다. 해당 항목은 5장 '구현', 항목 28 "내부에서 사용하는 객체에 대한 핸들을 반환하는 코드는 되도록 피하자" 에 해당하는 내용입니다. 멤버의 참조자를 반환하는 멤버 함수들의 최대 접근도 class Point { public: Point(int x, int y); ... void setX(int newVal); void setY(int newVal); ... }; struct RecData { Point ulhc; // upper left-hand corner Point lrhc; // lower right-ha..
[Effective C++] #27_캐스팅은 절약하고 또 절약하자! Scott Meyers의 "Effective C++" 를 통해, C++ 구현에 필요한 개념들을 이해하고, 기록하기 위함입니다. 해당 항목은 5장 '구현', 항목 27 "캐스팅은 절약, 또 절약! 잊지 말자"에 해당하는 내용입니다. Casting? 우리 말로 "형변환"으로 잘알려진 Casting은, 자료형간의 형변환 혹은 포인터 간의 형변환을 위해 사용됩니다. C언어의 Cast (T) A// A를 Typename으로 캐스트 합니다. T (A)// 함수 방식의 캐스트 class A { public: explicit A (int size); ... }; void doSoemthing(const A& a); doSomething(A(15));/..
[Effective C++] #26_변수 정의 Scott Meyers의 "Effective C++" 를 통해, C++ 구현에 필요한 개념들을 이해하고, 기록하기 위함입니다. 항목은 5장 '구현', 항목 26 "변수 정의는 늦출 수 있는 데까지 늦추는 근성을 발휘"에 해당하는 내용입니다. 변수 정의 변수를 정의하면 항상 부담해야 하는 비용이 두 가지가 있습니다. 하나는 프로그램 제어 흐름이 변수의 정의에 닿을 때 생성자가 호출되는 비용, 또 하나는 변수가 유효범위를 벗어날 때 소멸자가 호출되는 비용입니다. 변수를 일찍 정의 했을 때 std::string encryptPassword(const std::string& password){ using namespace std; string encryptedPas..
[Effective C++] #25_예외를 던지지 않는 swap Scott Meyers의 "Effective C++" 를 통해, C++ 구현에 필요한 개념들을 이해하고, 기록하기 위함입니다. 항목은 4장 '설계 및 선언', 항목 25 "예외를 던지지 않는 swap에 대한 지원"에 해당하는 내용입니다. Concept namespace std { template void swap (T& a, T& b){ T temp(a); a = b; b = temp; } } CS 전공자라면, 한번쯤 해봤을 "swap"에 대한 구현입니다. 25번 항목은 C++의 STL에 포함된 swap의 효율적인 구현을 목표로 합니다. 먼저, swap은 말 그대로 "값의 맞바꾸기" 입니다. 코드를 통해 swap 알고리즘을 살펴보겠습니다. ..
Hardii2
'언어' 카테고리의 글 목록 (17 Page)