C++

C++ 복사생성자 : 얕은 복사(Shallow Copy)와 깊은 복사(Deep Copy)
안녕하세요 귀신입니다. 군대갔다오고 2년만에 대학을 다니다보니 정신없이 시간이 흘러가고 있는 것 같습니다. 그래도 오랜만에 학교 생활 하니까 기분은 좋네요 ㅎㅎ 오늘은 클래스를 공부할 때 시험문제 단골인 복사생성자를 다뤄보려 합니다. 사실 개념 자체가 어렵진않습니다. 그럼 바로 시작해 보겠습니다. 1. 복사생성자 복사생성자는 말그대로 어떠한 객체를 복사해서 생성한다는 뜻입니다. 21번 라인을 보면 CTest의 인스턴스 A를 B가 그대로 복사하는 형태를 볼 수 있습니다. 저렇게 객체를 생성하면 어떤 일이 벌어질까요? 클래스의 메서드로 printData()함수를 생성했습니다. 멤버변수 nData를 출력하는 메서드인데요. A와 B에서 각각 호출하면 놀랍게도 멤버변수 nData의 값이 10으로 동일하다는 것을 ..

C++ 세번째, 생성자와 소멸자 그리고 this 포인터
안녕하세요. 오늘은 지난번 클래스에 대한 간단한 개념과 접근제어지시자에 이어 class내의 특별한 함수들에 대해서 이야기해보려 합니다. 바로 생성자와 소멸자인데요. 생성자와 소멸자는 그 생김새부터 역할, 호출 시기와 소멸 시기까지 조금은 특별한 함수입니다. 그리고 간단하게 this포인터까지 짚고 넘어갈 것이기 때문에 잘 봐주시기 바랍니다. 그럼 시작하겠습니다. 1. 생성자 생성자란 어떠한 클래스의 객체가 생성될 때 호출되는 함수를 말합니다. 즉 클래스의 인스턴스를 선언하게되면 그 즉시 자동으로 호출되는 함수입니다. 코드로 보겠지만 생성자와 소멸자는 return 값이 없기 때문에 다른 함수와 달리 이름 앞에 반환 자료형을 기술하지 않습니다.(void도 기술하지않음) 또 생성자는 클래스의 이름을 그대로 가져..

C++ 두번째, 클래스(Class) 기본 개념과 접근 제어 지시자
안녕하세요 여러분 귀신입니다. 글이 조금 늦었는데 공부를 안한건 아니고 이 블로그가 그저 제가 공부했던걸 복습함과 동시에 후에 잊어버렸을 때 찾아보려고 만드는 용이라 그런지 알고 있는 내용을 굳이해야하나 하는 그런 고민이 있었습니다. 그래도 꼭 짚고 넘어갈건 짚고 넘어가야겠다는 생각에 오늘은 간단하게 클래스에 대해서 알아보려고 합니다. 바로 시작하겠습니다. 1. 클래스에 대하여 클래스에 대하여 간단하게 짚고 넘어가겠다. 절차지향인 C언어를 공부하다 객체지향 C++을 처음 배울 때면 다들 당황하고는 합니다. 그 이유는 여러가지가 있죠. 일단 C++이라 하니 C언어랑 비슷할 줄 알고 겁없이 책을 펼쳤다 그대로 덮고 싶다는 생각을 했을 수도 있고, 모든 것들을 클래스로 객체화하는 코드가 조금은 낯설 수도 있습..