파일 사이의 컴파일 의존성을 최대로 줄이자. 클래스 하나만 추가해서 빌드를 했더니 건들지도 않은 부분도 컴파일되고 다시 링크된다. C++가 인터페이스와 구현을 깔끔하게 분리하지 못하기 때문입니다. C++의 클래스 정의는 클래스 인터페이스만 지정하는 것이 아니라 구현 세부사항까지 지정하고 있습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 class Person { public: Person(const std::string&name, const Date& birthday, const Address& addr); std::string name() const; std::string birthDate() const; std::string address() const; private:..
인라인 함수는 미주알고주알 따져서 이해해 두자 인라인 함수의 정의 함수 호출 문을 그 함수의 본문으로 바꿔치기하는 함수. 컴파일러에 대한 개발자의 요청으로 무시될 수도 있다. inline 함수 1 2 3 4 5 6 7 8 9 10 11 12 13 inline void foo() { cout 잘못된 인라인은 예외 1 2 3 4 5 6 7 8 9 10 11 12 13 14 class Base { public: private: std::string bm1,bm2; }; class Derived : public Base { public: Derived() {} // 비어 있지만 컴파일러가 만들어 내는 코드가 있다. private: std::string bm1,bm2,bm3; }; Colored by Color ..
예외 안전성이 확보되는 그날 위해 싸우고 또 싸우자! 예외 안전성이란 무슨 말인가? "예외적 상황에 대해서 안전한가?"에 대한 말이다. 왜 확보해야 하는가? 코딩중에 컴파일타임에 에러를 다 찾아내면 좋겠지만, 컴파일 타임에 찾지 못하는 에러들은 정말 찾기가 힘들어진다. 그렇기 때문에, 예외적 상황에 대해서 대처를 해야지만 디버깅이 용이해지고, 프로그램 자체도 더 견고해지기 때문에 확보해야 한다. 함수들의 예외 안전성은 어떻게 동작해야 하는가? 1. 자원이 절대 새도록 만들지 않는다. 2. 자료구조가 더렵혀지는 것을 허용하지 않는다. 그렇다면, 예외 안전성을 갖춘 표준 보장은 무엇인가? 1. 기본적인 보장(basic guarantee) : 예외 발생에 있어, 자원 누수를 시키지 않겠다는 보장 2. 강력한 ..
내부에서 사용하는 객체에 대한 ‘핸들’을 반환하는 코드는 되도록 피하자 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 //점을 나타내는 클래스 class Point { public: void setX(int newVal); void setY(int newVal); }; //Rectangle에 쓰기 위한 점 데이터 struct RectData { Point ulhc; //ulhc = “좌측 상단(upper left – hand corner)” Point lrhc; //lrhc = “우측 하단(lower right – hand corner)” }; class Rectangle { private: std::tr1::shared_ptrpData; //tr1::shared_ptr..
- Total
- Today
- Yesterday
- cpu 정보
- string
- 블럭암호화
- RSA
- 네트워크설정
- 디자인 패턴
- cpu 이용률
- 대칭키
- 알고리즘
- bit
- AES
- C
- 최우림
- 백터
- 블록암호화
- 패턴
- C# 고급 기술
- 해시
- cpu 점유율
- IV
- 네트워크 카드 이름
- 네트워크 정보
- 네트워크 연결
- C#
- 디자인패턴
- absl-cpp
- 암호화
- Project
- C++
- C#.NET
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |