728x90 반응형 분류 전체보기93 class 02 Study about class 중첩 클래스 클래스 안에 선언되어 있는 클래스로 소속되어 있는 클래스의 멤버에 자유롭게 접근 가능하다. (private 멤버도 가능) 클래스 외부에 공개하고 싶지 않은 형식을 만들거나 현재 클래스의 일부처럼 표현 가능한 클래스를 만들고자 할때 사용한다. class OuterClass { private int OuterMember; class NestedClass // 중첩클래스 { public void DoSomething() { OuterClass outer = new OuterClass(); outer.OuterMember = 10; } } } 확장 메소드 기본 클래스의 기능을 확장하는 기법 // 선언 방법 neamespace MyExtension { public st.. 2021. 8. 22. class 01 Study about class class 객체를 만들기위해 사용하는것 Data - 속성 Method - 기능 생성자와 종료자(소멸자) 생성자는 클래스와 같은 이름으로 반환형식이 없다. 기본생성자와 사용자 지정 생성자가있다 종료자는 매개변수도없고 한정자도 사용하지 않으며 오버로딩 불가능하고 직접 호출할 수 없다. 종료자는 CLR의 가비지 컬렉터가 객체 소멸시점을 판단해 호출한다. 종료자는 가급적 구현안하는걸 추천 class JinHyung { public JinHyung() {} // 기본 생성자 public JinHyung(int age, float weight) {} // 사용자 지정 생성자 ~JinHyung() {} // 종료자 } Shallow copy & Deep copy 얕은 복사는 객체 복사.. 2021. 8. 22. lambda Study about lambda function & STL/function object 함수호출 연산자 예제 void pritf(); int main(void) { printf(...); // call return 0; } printf는 주소 그리고 (...)을 함수호출 연산자라고하며 함수호출연산자 안의 내용을 매개변수라한다. 함수호출연산자는 재정의가 가능하다. 즉 함수자체를 객체화 가능 ex)call back logic #include 선언을 통해 사용 주로 람다식과 같이 사용됨 람다식 예제 void TestFunc(char* pszParam, std::function param) { std::cout 2021. 8. 22. exception Study about exception handling try {} ~ catch() 문을 통한 구조화된 예외처리가 있음 try내 throw 가 나오면 객체로 떼어서 생각 구조화된 예외처리를 잘하자 함수속에서 throw 할 경우 void ExceptTest1() { int a; if(!a) { throw a; } } void ExceptTest2() { char ch; if(!ch) { throw ch; } } int main(void) { try { ExceptTest1(); ExceptTest2(); } catch (int test1) { std::cout 2021. 8. 22. template Study about template 뭔가를 찍어내는 틀이라 생각 생산성이 향상됨 template 종류 function template class template class template 예제 template class Test { public: Test() { m_Data = 0; } ~Test() {} void SetData(const T& t) { this->m_Data = t; } T GetData() { return this->m_Data; } T operator+ (const T& t) { return (this->m_Data + t); } private: T m_Data; }; int main(void) { Test a; a.operator+(6); std::cout 2021. 8. 20. relational Study about relational 관계 종류 수직 - 상속 수평 집합 수평적 관계 class를 instance화 한다 이때 바깥에서 pointing하는걸 인터페이스라고 하고 대부분 method로 구현 서로 다른 두 클래스가 긴밀하게 붙어야 할 경우가 생긴다 (연예인과 매니저관계) 즉 서로 독립적이지만 응집적임이 필요할 경우 어떤건 public 어떤건 private protected로 규정한 접근제어를 한번에 무력화 시키는 방법이 friend 키워드다 friend로 선언 가능한 대상 함수 클래스 관계의 필요성 (자료구조 링크드리스트를 통한 예제) class MyList {}; // friend MyList {}; class MyNode {}; class User : public MyNode {}; .. 2021. 8. 20. 이전 1 ··· 10 11 12 13 14 15 16 다음 728x90 반응형