본문 바로가기
728x90
반응형

생성자7

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.
inheritance 02 Study about inheritance (심화편 시작) virtual function "상속 + 재정의" 가 나오면 강한 특징을 발현 Data/GUI/Ctrol(제어) 는 항상 구분 Frame work: [기반코드] / [확장코드] 기반과 확장사이 상호작용 가능하게 하는게 재정의 기반코드에서 확장코드를 Call 하는 방법이 가상함수다 '미래'를 호출한다! 라는 개념도 탑재 method 종류 일반 가상 순수 가상: 가상함수와의 차이는 only 선언 (정의가 없음) 선언은 Complie만 가능 정의는 Link만 가능 형식 이야기 접근형식: Pointer* / Reference& 가 있음 실제형식(실형식): 아래 코드예제 통해서 설명 class A {}; // 기본 클래스 class B : public A.. 2021. 8. 20.
constructor 05 Study C++ about copy constructor & temporary object Constructor Story(01) 강의와 연관 Deep Copy 생성자의 호출 시점, 조건에 대해 이전 내용들을 보면서 꼭 기억하자 복사 생성자의 또 다른 이야기 class CTest { public: CTest() { std::cout 2021. 8. 20.
constructor 03 Study C++ about copy constructor & temporary object temporary object (임시 객체) 예제로 생각해보기 (이해가능하면 하기) class { public: int TestFunc() { return nData; } private: int nData; } int main(void) { int nResult = TestFunc(); return 0; } main부분을 보면 nResult = TestFunc()의 의미는 nData를 nResult에 전달하겠다는 의미다 Q) nData를 반환하면 TestFunc()은 사라질거고 그러면 nData도 사라질텐데 nResult에 nData를 전달하는 중간접점은 어떤식으로 동작할까? A) 어셈블리를 뜯어보면 EAX 레지.. 2021. 8. 20.
constructor 02 Study about copy constructor & temporary object 대입 연산자 operator Overloading은 C++에서 연산자를 함수형태로 사용가능 대입연산자 [l-value = r-value] 형태 l-value에는 locator가 r-value에는 변수, 상수 등 즉 왼쪽에선 Overwrite가 오른쪽에선 read가 일어남 operator 예제 class CTest { public: CTest() { std::cout 2021. 8. 20.
constructor 01 Study about copy constructor & temporary object PreView [생성자/소멸자] 라는 함수는 Caleer가 호출해서 생성되는 것이 아닌 언어 문법에 의해 Call 되는 시점이 '알아서' '자동으로' 호출 생성자: 인스턴스 선언 OR new 사용 / 소멸자: delete OR 스코프 끝 About Copy int main(void) { int a(10); // C++ Style 초기화 방법 int b(a); return 0; } 우리는 생성에 대해 두 가지 코드로 표현 가능 int a(10)은 a는 생성되는 것(변수, 인스턴스) 10은 생성되는 것에 대한 초기값(상수) 로 해석 가능 int b(a)는 a는 초기값인데 변수(인스턴스)로 b는사본 a는 원본 이라고 해석되며.. 2021. 8. 20.
728x90
반응형