대입 연산자는 *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번의 일 경우 예외가 동시에 발생한 조건에 따라 프로그램 ..
다형성을 가진 기본 클래스에서는 소멸자를 반드시 가상 소멸자로 선언하자 함수가 반환하는 포인터가 파생 클래스 객체에 대한 포인터라는 점과 이 포인터가 가리키는 객체가 삭제될 때는 기본 클래스 포인터를 통해 삭제 된다는 점, 그리고 결정적으로 기본 클래스에 들어 있는 소멸자가 비가상 소멸자 라는 점이다. C++ 의 규정에 의하면, 기본 클래스 포인터를 통해 파생 클래스 객체가 삭제될 때 그 기본 클래스에 비가상 소멸자가 들어 있으면 프로그램 동작은 미정의 사항이라고 되어 있다. 예제 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 class TimeKeeper { public: TimeKeeper(); ~TimeKeeper(); }; void main() { TimeKeeper *pt..
- Total
- Today
- Yesterday
- process
- string
- 백터
- C# 고급 기술
- 암호화
- 네트워크 정보
- 인젝션
- 네트워크 카드 이름
- cpu 이용률
- 패턴
- C++
- C
- C#
- RSA
- bit
- 디지털서명
- 디자인 패턴
- 블럭암호화
- 해시
- 대칭키
- 네트워크 연결
- 디자인패턴
- 네트워크설정
- 최우림
- IV
- C#.NET
- cpu 정보
- cpu 점유율
- 블록암호화
- StringFormat
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |