본문 바로가기
728x90
반응형

전체 글97

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.
class 03 this 포인터 이해를 위한 메모리주소 찍기 class CTest { public: CTest() { //std::cout 2021. 8. 20.
class 02 Preview class 01에서 class는 [구조체+함수]와 유사하했다. 사실 여기에 부가적으로 알파가 추가되어야한다. 알파에는 접근제어자+상속 등등이 있다. class와 구조체(struct) 멤버에는 Data와 Function이 있다 class에서 Function을 Method라고 부른다 접근제어 class를 통해 Object를 구현가능 이때, 객체의 내부와 외부 기억 외부에서 내부로 접근하는걸 통제하는게 필요 why? 문제방지 만약 다 public처럼 사용가능하면 class의 기능을 잃는다 생성자 / 소멸자 C++ class는 [생성자/소멸자] 제공하며 이는 함수다. [생성자/소멸자]는 호출시점 특정할수없음 -> 자동으로 호출 호출시점은 문법에 의해 이미 정해짐 프로그래머가 개입해 수정X [생성자.. 2021. 8. 19.
class 01 OOP C 언어 : 절차지향 언어 C++ 언어 : 객체지향 언어 -> class를 이용한다. class? 유사 [구조체+함수] 라고 이해 class 이해이해를 돕기위한 코드 print라는 기능이 C에서 C++로 어떻게 변화하는지 중점으로) ///제작자 코드 typedef struct USERDATA { int nAge; char szName[32]; }USERDATA; ///사용자 코드 int main(void) { USERDATA u = {20, "Hugh"}; printf("%d %s\n", u.nAge, u.szName); return 0; } 자료구조는 제작자 코드를 사용자 코드는 함수를 의미 사용방식: [자료구조 nAge, pUser->szName); } ///사용자 코드 int main(voi.. 2021. 8. 19.
728x90
반응형