클래스 설계는 타입 설계와 똑같이 취급하자. C++에서 새로운 클래스를 정의 한다는 것은 새로운 타입을 하나 정의하는 것과 같습니다. 함수와 연산자를 오버로드하고, 메모리 할당 및 해제를 제어하며, 객체 초기화 및 종료정리를 정의하는 작업, 이 모두가 여러분의 손에 달려 있습니다. 좋은 타입이란 문법이 자연스럽고, 의미구조가 직관적이며, 효율적인 구현이 한 가지 이상 가능해야 합니다. 효과적인 클래스를 설계하기 위해 고려해야 할 사항 새로 정의한 타입의 객체 생성 및 소멸은 어떻게 이루어져야 하는가? 이 부분에 따라 클래스 생성자 및 소멸자의 설계가 바뀝니다. 메모리 할당 함수를 직접 작성 할 경우에는 이들 함수의 설계에도 영향을 미칩니다. (operator new, operator new[], oper..
인터페이스 설계는 제대로 쓰기엔 쉽게, 엉터리로 쓰기엔 어렵게하자. 인터페이스는 c++에서 쓰이는 함수, 클래스, 템플릿 등을 모두 포괄하는 의미이다. 사용자가 저지를 수 있는 오류에는 여러가지가 있고, 개발자는 그러한것들을 최대한 줄일 수 있도록 여러 안전 장치들을 마련해 놓을 필요가 있다. 예제 1 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 ..
new로 생성한 객체를 스마트 포인터에 저장하는 코드는 별도의 한 문장으로 만들자. new를 사용하여 생성한 객체를 스마트 포인터등에 저장 할 때 단계가 많거나 복잡할 수 록 메모리 누수가 발생 할 수 있다. 예제 1 1 2 3 4 5 6 7 8 9 10 11 12 //우선 순위를 알려 주는 함수 int priority(); //동적으로 할당한 Widget객체에 대해 어떤 운선순위에 따라 처리를 적용하는 함수 void processWidget(std:tr1::shared_ptrpw, int priority); void main() { processWidget(std:tr1::shared_ptr(new Widget),priority()); } Colored by Color Scripter cs 어디서든 잘..
new 및 delete를 사용할 때는 형태를 반드시 맞추자 동적할당 연산자 new, delete를 사용 할 때 형태를 일치 시켜야한다. 사용법 int* pnCount = new int; delete pnCount; int* pArryCount = new int[100]; delete [] pArryCount; 예제 1 std::string *pStringArray = new std::string[100]; delete pStringArray; 위 코드와 같이 사용하면 pStringArray가 가리키는 100개의 string 객체들 가운데 99개는 정상적인 소멸 과정을 거치지 못합니다. new를 사용하여 동적 메모리가 할당을 시도하게 되면 그 과정에서 std::string()의 생성자는 할 당 된 수 만큼..
- Total
- Today
- Yesterday
- 블럭암호화
- 디지털서명
- C#
- C++
- process
- 최우림
- 백터
- IV
- 네트워크 연결
- cpu 정보
- C# 고급 기술
- 디자인패턴
- 암호화
- 네트워크 정보
- cpu 이용률
- 네트워크설정
- C
- 해시
- 네트워크 카드 이름
- StringFormat
- 디자인 패턴
- string
- C#.NET
- bit
- 대칭키
- 블록암호화
- RSA
- 인젝션
- 패턴
- cpu 점유율
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |