본문 바로가기

Programming/C C++5

operator Overloading CMy_String. class CMy_String { public: CMy_String(); CMy_String(const char* str); CMy_String(const CMy_String& other); CMy_String& operator=(const CMy_String& rhs); ~CMy_String(); CMy_String operator+(const CMy_String& str); CMy_String operator+(char* str); friend CMy_String operator+ (const char* lhs, CMy_String& rhs); CMy_String& operator+= (const CMy_String& str); CMy_String& operator+= (char.. 2021. 1. 7.
Garbage Collection & Reference Counting 자동 메모리 관리를 통해서 프로그래머의 실수를 방지함으로써 결과적으로는 메모리 누수를 방지할수 있다. 자동 메모리 관리를 위해서 사용하는 방법에는 2가지 방법들이 있다. 1. Garbage Collection - 보통 Tracing Garbage Collection을 의미 2. Reference Counting 지금 살펴 볼것은 Garbage Collection이다. Garbage Collecting Garbage Collection(GC) 작동 원리: - gc는 주기 적으로 사용하지 않는 메모리들을 collect를 한다. - gc는 여유 메모리가 모자를때 collect를 한다. - gc는 Root를 확인한다. gc는 heap에 있는 메모리를 Root를 통해 접근이 가능한지 판단한다. 이때 접근이 불가능.. 2020. 10. 22.
Lambda를 써야하는 이유와 사용 방법 Lambda 람다 - 이름이 없는 함수 람다를 써야하는 대표적인 이유는 재사용이 되지 않을 어떤 함수를 작성하기 위함이다. #include #include using namespace std; bool DescendingSort(int a, int b) { return a > b; } int main(void) { array arr; for (int i = 0; i < 3; ++i) { arr[i] = i + 10; } sort(arr.begin(), arr.end(), DescendingSort); for (int num : arr) { cout 2020. 10. 16.
prefix increment operator vs. postfix increment operator 프로그래밍을 처음 시작하는 사람들일 수록 for문등을 사용할때 i++를 많이 사용하는 경향들이 있다. 과연 저 방법은 프로그래밍에서는 ++i보다 좋은 방법일까? 오늘은 i++ 와 ++i를 비교 해보고 둘중 무엇을 사용해야지 더 좋은 프로그램에 좀더 가까워 질수 있는지 알아 보겠다. 이둘은 언뜻 보기에는 차이가 없어 보이나, 내가 직접 구현을 해보면 그 차이를 알수가 있다. class INT { int val; public: INT() { }; INT(int n ): val{ n } {} //++INT :prefix increment operator INT& operator++() { ++val; return *this; } //INT++ :postfix increment operator INT opera.. 2020. 10. 12.
C++ 정적 바인딩과 동적 바인딩 C++에서는 상속이라는 개념이 있다. 부모 클래스와 자식 클래스에 같은 이름의 함수가 존재한다 가정한다. 위의 그림을 코드로 표현하면 아래와 같다. class Vehicle { public: void drive(){ cout 2020. 9. 29.