컴파일러가 자동으로 생성하는 함수를 불필요할 때 명시적으로 금지하자클래스를 사용할 때, 때로는 복사 생성자와 복사 대입 연산자의 사용을 금지하고 싶을 때가 있습니다. 그렇다고 해서 우리가 이를 구현하지 않았다고 해서 자동으로 금지되는 것이 아니라, 컴파일러가 자동으로 생성해버립니다. 이를 방지하는 방법은 명확히 복사 생성자와 복사 대입 연산자의 사용을 금지하는 것입니다.문제 상황class CA{ // 아무 것도 구현하지 않음};int main(){ CA ca; CA ca2; CA ca3(ca); // 복사 생성자 호출 ca2 = ca; // 복사 대입 연산자 호출}위의 예제에서 CA 클래스는 복사 생성자와 복사 대입 연산자가 명시적으로 정의되지 않았습니다. 그럼에도 불구하고..
C++이 자동으로 생성하고 호출하는 함수들에 주의하자class Empty { };class Empty {public: Empty() { /* ... */ } // 기본 생성자 Empty(const Empty& rhs) { /* ... */ } // 복사 생성자 ~Empty() { /* ... */ } // 소멸자 Empty& operator=(const Empty& rhs) { /* ... */ } // 복사 대입 연산자};C++에서는 프로그래머가 명시적으로 선언하지 않아도 컴파일러가 자동으로 생성해주는 멤버 함수들이 있..
- Total
- Today
- Yesterday
- Build
- C++
- C#
- 현포다이브
- PowerShell
- effective
- 블루버블다이브팀
- 서귀포
- 울릉도
- C# 고급 기술
- 블루버블
- 스쿠버다이빙
- C
- 네트워크 정보
- 암호화
- Windows
- 스쿠버 다이빙
- C#.NET
- script
- 외돌개
- 제주도
- Effective c++
- 성산블루버블
- 블루버블다이빙팀
- Linux
- OpenSource
- DLL
- 패턴
- 서귀포블루버블
- CMake
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |