2018/12 19

[C++] const, friend 키워드

const- 객체도 상수화 가능하며, 이는 const 멤버함수의 호출만 허용한다. -> 데이터를 변경시킬 능력이 있는 함수는 아예 호출을 허용하지 않는다. const SoSimple sim(20); - const의 선언유무도 함수 오버로딩의 조건에 해당 -> const로 선언된 객체는 const가 선언된 함수가 호출된다. void SimpleFunc() { ... } void SimpleFunc() const { .... } friend - 클래스를 대상으로 friend선언을 하게되면 선언한 클래스의 private 변수에 직접 접근이 가능하다.12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849#i..

개발/C, C++ 2018.12.30

2018년에 읽은 책들

매년 읽었던 책들을 정리하고 있다. 작년엔 그냥 읽었던 책들만 쭉 나열해봤는데, 올해는 조금의 생각이나 왜읽었는지를 같이 기록해두려 한다. 그래야 조금더 읽었던 책들에 대한 감정과 느낌이 오래 지속할 수 있을 것 같다. (특히나 나같이 빨리빨리 잊어버리는 사람은...)읽은 권수는 총 45권으로, 작년에 겨우 1달에 1권읽던 것에서 올해는 책읽는게 재밌어져서 많이 읽게 되었다. 추천 도서보다도 내가 내마음 대로 읽고 싶은 책을 사서 읽었는데, 그덕분에 좀더 독서를 많이 하고 오래할 수 있었다. 내년엔 올해보다 더 내키는대로 내 맘대로 많이 읽어야겠다. 물론 재밌게, 1월에 읽은 책들,82년생 김지영, 조남주 올해 처음으로 읽은 책은 '82년생 김지영', 이 책을 읽고 싶다고 생각한건 단순히 계속 화제가 되..

취미/책 2018.12.29

[C++] 복사 생성자의 호출시점

- 복사생성자 : Link - 복사생성자의 깊은복사 & 얕은복사 : Link복사 생성자의 호출시점- 복사 생성자의 호출시점은 크게 세가지로 구분 1) 기존에 생성된 객체를 이용해 새로운 객체를 초기화 하는 경우 2) Call-by-value 방식의 함수호출 과정에서 객체를 인자로 전달하는 경우 3) 객체를 반환하되, 참조형으로 반환하지 않은 경우 1) 기존에 생성된 객체를 이용해 새로운 객체를 초기화 하는 경우 12Person man1("Lee dong woo", 29);Person man2 = man1;cs2) Call-by-value 방식의 함수호출 과정에서 객체를 인자로 전달하는 경우123456789101112131415161718192021222324252627282930313233#include..

개발/C, C++ 2018.12.29

[C++] 복사생성자의 깊은복사 & 얕은복사

복사 생성자 : http://huiyu.tistory.com/341*디폴트 복사 생성자는 멤버 대 멤버의 복사를 진행한다. 이러한 방식의 복사를 가리켜 '얕은 복사'라 하는데, 이는 멤버변수가 힙의 메모리 공간을 참조하는 경우에 문제가 된다.*디폴트 복사 생성자의 문제점123456789101112131415161718192021222324252627282930313233343536373839404142#include #include using namespace std; class Person{private: char * name; int age;public: Person(char * myname, int myage) { int len = strlen(myname) + 1; name = new char[l..

개발/C, C++ 2018.12.29

[C++] 복사 생성자(Copy Constructor)

- C++ 스타일 초기화 int num = 20; int &ref = num;or int num(20); int &ref(num);-> C++에서는 위의 두가지 초기화 방식을 동시에 지원한다. *객체에서는? -> 객체에서도 변수의 초기화와 같이 대입, 괄호 두가지 초기화 방식을 모두 지원한다.1234567891011121314151617181920212223class SoSimple{private: int num1; int num2; public: SoSimple(int n1, int n2) : num1(n1), num2(n2) {} void ShowSimpleData() { cout

개발/C, C++ 2018.12.18

[C++] 생성자(Constructor)와 소멸자(Destructor)

- 생성자(Constructor)1234567891011121314class SimpleClass{private: int num;public: SimpleClass(int n) // 생성자(Constructor) { num = n; } int GetNum() const { return num; }};Colored by Color Scriptercs - 위 클래스의 SimpleClass()는 생성자(Constructor)이며, 아래와 같은 특징을 지닌다. 1) 클래스의 이름과 함수의 이름이 동일 2) 반환형이 선언되지 않으며, 실제로 반환되지 않는다. 3) 생성자(Constructor)는 객체 생성시 딱 한번만 호출된다. 4) 생성자도 함수의 일종으로 오버로딩이 가능하다. 5) 생성자도 함수의 일종으로 매..

개발/C, C++ 2018.12.16
반응형