min(a,b) a와 b중 작은값을 리턴해주며, 같을시 첫번쨰 매개변수를 리턴한다. max(a,b) a와 b중 큰 값을 리턴해 주며, 같을시 첫번째 매개변수를 리턴한다,. 그런데, 이것만 한다면, 그리 특별하지 않다. 하지만.. min(a,b, op) 식을 제공하기 때문에, 막강하다. max(a,b, op) 식도 제공한다. swap 함수는 레퍼런스로 계산해주기 때문에 막강하다. 클래스 TEST 에 int a와 int b 가 있고, 이 클래스의 객체 AAA 와 BBB가 있을때. private 로 되어 있으면 값을 얻어와서 다시 셋팅해줘야 하지만. 클래스 내부에.. swap(_T& a) { std::swap(자기변수, a.상대변수); std::swap(자기변수, a.상대변수); } 라고 해 두고.. 함수객체..
연구실 검색 결과
new 만 쓰면서 사용하다가 어느샌가 스마트 포인터란 녀석이 존재한다는것을 알게 되었다.그 스마트 포인터중 C++ 표준 라이브러리 유틸리티에 포함되어 있는 auto_ptr에 대해서 익히려 한다. #include #include using namespace std; class BABO { int a, b, c; public: BABO* Mythis; BABO() { a = 3; b = 4; c = 5; Mythis = this; } void draw(void) { std::cout
아래는 인포북 - More Effective C++에 있는 내용입니다. 항목 2 : 가능한 C+ + 스타일의 캐스트를 즐겨 쓰자 이번 항목에서는 goto와 함께 프로그래밍계의 1급 기피대상인 캐스트(cast, 형변환) 란 것에 대해 생각해 보기로 합시다. 그렇게 쓰지 말라고 많은 사람들이 목놓아 외침에도 불구하고 캐스트와 goto는 많은 코드에서 버젓이 한 자리 하고 있습니다. 왜냐하면 프로그램을 작성하면서 사태가 걷잡을 수 없이 악화되면 어쩔 수 없이 이런 것들이 필요해지기 때문입니다. 캐스트는 바로 이런 것들에 속합니다. 하지만, 어쨌든 C 스타일의 캐스트는 있어야 할 것이 못 됩니다. 우선, 이것의 첫째 문제는 C 스타일의 캐스트는 어떤 타입을 다른 타입으로 아무 생각 없이 바꾸어주는 괴물이나 마찬..
처음에는 객체지향 설계가 가능하기 때문이라고 생각 했다. 하지만 .. 막강 기능 STL 이 있기 때문이 아닐까 하는 생각을 하곤 한다. 다음은 list 문서내에 있던 remove_if의 구조이다. template void remove_if(_Pr1 _Pred) { // erase each element satisfying _Pr1 iterator _Last = end(); for (iterator _First = begin(); _First != _Last; ) if (_Pred(*_First)) _First = erase(_First); else ++_First; } _Pred 만 정해주고 return 타입이 bool 형이기만 하면, .. 어떤 데이터간에 ... 리스트에서 삭제가 가능하다. 처음에는 S..
최근댓글