Operator= 에서는 자기대입에 대한 처리가 빠지지 않도록 하자. 타이틀 입력부분C++ 연산자 operator= 에서는 자기대입에 대한 처리가 빠지지 않도록 하자. 자기대입(중복참조,자기참조)은 같은 객체를 참조 할 수 있는 위험이 있다. 자기참조,자기대입(Self Assignment)이란? 객체가 자신에 대해 대입 연산자를 적용하는 것을 말합니다. ex)중복참조: 여러 곳에서 하나의 객체를 참조하는 상태 예제 1 2 3 4 5 6 Widget& Widget::operator=(const Widget& _rhs) { delete pb; //현재의 비트맵 사용을 중지합니다. pb = new Bitmap(*_rhs.pb); //이제 rhs의 비트맵을 사용하도록만듭니다 return *this; //*thi..
대입 연산자는 *this의 참조자를 반환하게 하자 대입 연산은 우측연관(Right Associative) 연산이다. 1 2 3 4 5 6 void main() { int x, y, z; x = y = z = 15; x = ( y = ( z = 15 ) ); } cs 위와 같이 대입연산의 경우 우측부터 대입이 사슬처럼 이어진다. 좌변 객체의 참조자를 반환하게 만들자 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 class Widget { private : int m_nData; public : void Set(const int _nValue) { m_nData = _nValue; } int Get() const {..
객체 생성 및 소멸 과정 중, 절대로 가상 함수를 호출하지 말자 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 class Transaction { public: Transaction() { logTransaction(); } virtual void logTransaction() const=0; }; class butTransaction: public Transaction { public: butTransaction(){}; virtual void logTransaction() const; }; void mian() { BuyTransaction b; } Colored by Color Scripter cs 상속 관계에서 생성자에 쓰이는 virtual ..
예외가 소멸자를 떠나지 못하도록 붙들어 놓자 소멸자로 부터 예외가 발생 하는 경우를 C++ 언어에서 막는 것은 아니지만, 실제 상황을 들춰보면 확실히 우리가 막을 수밖에 없다. 예제 1 1 2 3 4 5 6 7 8 9 10 11 12 13 class Widget { public: Widget(); ~Widget() {….} }; void main() { std::vector v; } cs 1. vector 타입의 객체가 v 일 경우 객체를 소멸시킬 책임은 바로 벡터에게 있다. 2. 10개의 객체 v가 vector에 있을 경우 첫 번째 객체가 소멸할 때 예외가 생기고 두 번째 객체가 또 예외가 생길 경우 C++입장에서는 감당하기 힘들다. 3. 위 2번의 일 경우 예외가 동시에 발생한 조건에 따라 프로그램 ..
- Total
- Today
- Yesterday
- 인젝션
- cpu 점유율
- 디자인 패턴
- 대칭키
- C#.NET
- process
- C
- StringFormat
- 네트워크 정보
- 암호화
- C#
- 해시
- cpu 정보
- string
- bit
- C# 고급 기술
- 디자인패턴
- 디지털서명
- 네트워크 연결
- cpu 이용률
- 블럭암호화
- 네트워크설정
- 최우림
- RSA
- C++
- IV
- 백터
- 패턴
- 블록암호화
- 네트워크 카드 이름
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |