C++/c++ - 따라하며 배우는 c++
c++ 함수 템플릿 사용하기
c++ 함수 템플릿 사용하기
2020.11.23동작하는 방식은 똑같은데 parameter 가 다른경우 일일이 다른 함수를 만들어 줘야하는 번거로움이 있습니다. int getMax(int x, int y) { return (x > y) ? x : y; } double getMax(double x, double y) { return (x > y) ? x : y; } 두가지 만 해도 함수를 하나더 만들어 줘야하는데 float char 등등.. 여러가지 type의 같은 함수를 많이 만들수록 유지보수도 힘들어집니다. 그래서 template 라는 함수를 사용해서 코드를 간소화 시키겠습니다. template T getMax(T x, T y) { return (x > y) ? x : y; } template 보통 T를 많이 쓰지만 원하시는 변수명을 지으셔도 상관없..
괄호 연산자 오버로딩
괄호 연산자 오버로딩
2020.11.12//function obj #include using namespace std; class AccuMulator { private: int m_counter = 0; public: int operator() (int i) { return (m_counter += i); } }; int main() { AccuMulator acc; cout
c++ 첨자연산자 오버로딩
c++ 첨자연산자 오버로딩
2020.11.12#include #include using namespace std; class IntList { private: int m_list[10]{ 0 }; public: // reference로 받는이유 값을 읽을수도 있고 값을 바꿀수도 있게하려고 // 항상 주소를 가지고 있는 lvalue가 들어와야 하기때문에 int& operator [] (const int index) { // 디버깅으로 체크하기 쉽게 하고 퍼포먼스를 높이기 위해 assert(index >= 0); assert(index < 10); return m_list[index]; } const int& operator [] (const int index) const { return m_list[index]; } }; int main() { In..
증감연산자 오버로딩
증감연산자 오버로딩
2020.11.12#include using namespace std; class Digit { private: int m_digit; public: Digit(int digit = 0) : m_digit(digit) {} // prefix 전위형 Digit& operator ++ () { ++m_digit; return *this; } // post 일경우 더미로 아무거나 넣어준다. Digit operator ++ (int) { Digit temp(m_digit); ++(*this); return temp; } friend ostream& operator
c++ 비교 연산자 오버로딩 하기
c++ 비교 연산자 오버로딩 하기
2020.11.05#include #include #include using namespace std; class Cents { private: int m_cents; public: Cents(int cents = 0) { m_cents = cents; } int getCents() const { return m_cents; } int& getCents() { return m_cents; } friend std::ostream& operator
c++ 단항 연산자 오버로딩 하기
c++ 단항 연산자 오버로딩 하기
2020.11.05#include using namespace std; class Cents { private: int m_cents; public: Cents(int cents= 0) { m_cents = cents; } int getCents() const { return m_cents; } int& getCents() { return m_cents; } }; Cents 클래스를 만들었습니다. 처음으로 할 것은 입출력 operator 를 오버로딩하는 것 입니다. friend std::ostream& operator
c++ 익명 객체 (anonymous)
c++ 익명 객체 (anonymous)
2020.10.30#include using namespace std; class A { public: void print() { cout
c++ 친구 함수와 클래스 friend
c++ 친구 함수와 클래스 friend
2020.10.30#include using namespace std; class A { private: int m_value = 1; }; void doSomething(A& a) { cout
c++ static member function (정적 멤버 함수)
c++ static member function (정적 멤버 함수)
2020.10.29#include using namespace std; class Something private: static int s_value; public: static int getValue() { return s_value; } int temp() { return this->s_value; } }; int main() { Something s1; Something s2; cout
c++ static member 변수
c++ static member 변수
2020.10.29class Something { public: static int s_value; }; int Something::s_value = 1; int main() { cout
c++ class 와 const
c++ class 와 const
2020.10.28#include #include using namespace std; class Something { public: int m_value = 0; Something(const Something& st_in) { m_value = st_in.m_value; cout
c++ 클래스 코드 와 헤더파일
c++ 클래스 코드 와 헤더파일
2020.10.28#include class Calc { private: int m_value; public: Calc(int init_value) : m_value(init_value) { } Calc& add(int value) { m_value += value; return *this; } Calc& sub(int value) { m_value -= value; return *this; } Calc& mult(int value) { m_value *= value; return *this; } void print() { using namespace std; cout