일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 스마트 포인터
- 다형성
- 암시적 변환
- 영화 리뷰
- 예외
- UE4
- reference
- resource management class
- 메타테이블
- virtual function
- 티스토리챌린지
- exception
- 상속
- 언리얼
- 루아
- Smart Pointer
- 게임
- Effective c++
- 비교 함수 객체
- more effective c++
- 참조자
- operator new
- effective stl
- 영화
- lua
- c++
- 반복자
- Vector
- implicit conversion
- 오블완
- Today
- Total
목록reference (4)
스토리텔링 개발자
항목 13. 발생한 예외는 참조자로 받아내자 catch 매개변수를 포인터로(catch-by-pointer)이론 상으로는 포인터로 받는 것이 가장 효율적이어야 한다.(항목 15 참조)객체의 복사 없이도 전달이 이루어지기 때문이다.class exception { ... };void someFunction(){ static exception ex; // 범위를 벗어나도 살리기 위해 static 선언 // exception ex; // 이처럼 선언하기라도 하면 미정의 동작을 유발한다!! ... throw &ex; // 포인터 객체를 던진다. ...}void doSomething(){ try { someFunction(); } catch(except..
항목 1 : 포인터와 참조자를 구분하자 포인터와 참조자의 차이참조자 개념에선 '널 참조자(null reference)'라는 것이 없다. 즉,포인터 사용어떤 변수가 참조하는 부분에 객체가 없을 수도 있는 상황.참조자 사용어떤 변수가 가리키는 메모리가 항상 유효한 객체여야 하는 상황C++ 스펙에 의하면 참조자는 선언될 때 반드시 초기화해야 한다.// 참조자의 경우string& rs; // 컴파일 에러. 초기화가 없다.string s("xyzzy");string& rs = s; // 컴파일 성공.// 포인터의 경우string* ps; // 초기화 되지 않은 포인터. 컴파일 성공. 허나, 무슨 값이 들어있을지..참조자는 중간에 다른 객체를 참조하게 할 수 없다.포인터의 경우다른 객체의 주소값으로 얼마든지 바..
항목 21. 함수에서 객체를 반환해야 할 경우에 참조자를 반환하려고 들지 말자 모든 코드에 '참조에 의한 전달'을 반영하려들면 안 되는 이유class Rational{public: Rational(int numerator = 0, int denominator = 1);...private: int n, d; friend const Rational operator* (const Rational& lhs, const Rational& rhs);};...Rational a(1, 2); // a = 1/2Rational b(3, 5); // b = 3/5Rational c = a * b; // c는 3/10이 되어야 한다.참조자는 존재하는 객체에 붙는 이름일 뿐이다.즉, 참조자를 리턴하려면 이..
항목 20. ‘값에 의한 전달’보다는 ‘상수 객체 참조자에 의한 전달’ 방식을 택하는 편이 대개 낫다 값에 의한 전달C++는 함수로부터 객체를 전달받거나 함수에서 객체 전달시 ‘값에 의한 전달(pass-by-value)’ 방식을 사용한다.이는 c에서 물려받은 특성 중 하나이다.즉 특별히 다른 방식을 지정하지 않는 한, 함수 매개변수나 함수 반환값은 '사본'이다. 값에 의한 전달은 고비용이다.class Person{...private: string name; string address;};class Student : public Person{...private: string schoolName; string schoolAddress;};bool validateStudent(Stu..