목록전체 글 (71)
영넌 개발로그

객체를 함수의 인수로 전달하는 방식은 크게 보면 2가지, 자세히 보면 3가지가 있다. 1. call by valuew 복사본이 넘어가서 오퍼레이션이 행해지고 함수 종료 후, 복사본은 소멸 되고 원래의 객체 값은 변하지 않는다. 2. call by reference(address) 객체의 주소를 넘겨주면, 주소 값을 변경시킬 수 있다. 함수 종료 후에 객체 내용은 변해 있다. 포인터의 일종이라고 생각하면 된다. 3. call by reference variable 예시 코드 > 기본 Car class class Car { private: int year; public: Car(int _year) : year(_year) {} void showYear() { cout

Constructor 생성자 class로부터 object가 만들어 질때 실행되는 함수이다. 클래스 이름과 같은 이름을 함수 이름으로 사용한다. Destructor 소멸자 object가 사라질때 수행되는 함수이다. 클래스 이름에 ~를 붙여서 선언한다. 생성할때 객체 내부에서 사용하려고 동적으로 메모리를 할당 받을 때가 있다. 근데 object가 그냥 사라져버리면 할당 해제가 되지 않은채로 사라지므로 메모리 누수가 생길 가능 성이 있다. 따라서 객체가 할당받은 동적 메모리를 해제해야 할 때 사용한다. 오브젝트가 생성된 구역이 끝날 때 실행된다. 간단한 예시코드를 보며 이해해보자. class Car { public: Car() { cout

pointer 주소를 가르키는 변수타입 char int와 같은 변수 타입 뒤에 * 을 붙여 정의하고 사용한다. dereferencing 포인터 변수 이름 앞에 *을 붙여 그 주소 안에 값을 가져오는 오퍼레이션을 의미한다. 아래 예시에서 *pa 는 10, pa는 3000을 출력한다. #include using namespace std; int main() { int a = 10; cout