* c++ 에선 특이하게 생성자 종류가 2가지가 있다. 앞 포스팅에서는 일반생성자에 대해서 다뤘다. 이번에는 복사생성자에 대해서 다뤄보겠다. * class 구조 1. 생성자함수 2. 복사생성자함수 3. 소멸자 함수 4. 대입연산자 함수 * 복사 생성자 매개 변수가 있는 생성자 중에서 다른 개체를 인자로 전달받아 복사된 개체를 생성하는 생성자이다. 개발자가 복사 생성자를 정의하지 않으면 컴파일러는 디폴트 복사 생성자를 만들어준다. 디폴트 복사 생성자에서는 입력 인자로 전달된 개체의 메모리를 덤핑하여 생성하는 개체의 메모리에 복사하는 작업을 수행한다. 즉, 새로 생성되는 개체는 입력 개체와 같은 값들을 갖는 개체가 생성 되는 것이다. * 복사 생성자 특징 1. 객체 선언 해주면서 객체의 모든 멤버(필드)의 ..
c++ 에서 class의 개념을 이해하기 위해서는 객체지향(OOP, Object Oriented Programming)이 무엇인지 알 필요가 있다. * 객체 지향 : 프로그래밍의 대상이 되는 세상의 사물과 현상 모두를 객체로 담아서 나타내는 것이다. 객체의 개념은 모든 개발자들이 해당 객체를 공통적으로 받아들일 수 있을만한 정의를 내린것이다. 특징으로는 추상화, 캡슐화, 상속, 다형성이 있다. - 추상화 : 독립적으로 표현 불가능한 추상적인 것을 구체화 시키는 행위 - 상속 : 부모의 형질을 물려받아 기능을 공유하여 코드의확장이 쉬움 - 다형성 : 한 객체가 다양한 형태를 지닐수 있으며 코드의 가독성이 좋아짐. - 캡슐화 : 논리적으로 비슷한 데이터와 기능을 묶어, 이들을 은닉하여 외부로 부터 보호가능하..
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 #include #include using namespace std; void input(int num, char *name, int *sco); void ex(int num, int *sco, float *avg); void output(..