본문 바로가기

전체 글

(71)
C++ 동적 메모리 할당 및 제거 (new, delete) 동적 메모리 할당 및 제거 C++는 필요한 경우에는 데이터를 할당하여 사용한 후, 사용이 완료되었을 때 할당받은 데이터를 제거하는 방법을 제공한다. 이 방법은 대용량 데이터가 필요한 경우 동적 메모리를 자주 사용한다. 그리고 동적 메모리로 효율적으로 메모리를 사용할 수 있다. 자세한 내용은 아래 예제에서 확인할 수 있다. 예제 #include using namespace std; int main() { int* psum;// 정수형 데이터의 시작 주소를 저장하는 변수 선언 // 정수형 (int) 데이터를 1개 (4바이트) 할당 받고 이 주소를 psum에 저장 psum = new int;// 동적 메모리 할당, 만약 정수형 데이터를 100개 할당 받고 싶으면 psum =new int[100]; if (ps..
C++ 객체 포인터와 객체 배열 객체 포인터와 객체 배열 객체를 다른 곳에서 공유할 경우에는 객체 규모가 크기 때문에 객체를 통째로 복사하는 것은 메모리 사용면에서 비효율적이다. 이러한 경우 객체 포인터를 사용하여 효율적으로 객체를 공유할 수 있다. 아래 예제로 객체 포인터와 객체 배열의 사용 방법을 참고할 수 있다. 예제 #include class POINT {//클래스 이름 (POINT)으로 클래스 정의 시작 private: int x, y;// private 멤버 변수 public: void SetPoint(int a, int b) {// 멤버 함수 x = a; y = b; printf("x=%d, y=%d \n", x, y); } };// 클래스 정의 완료 int main() { POINT ob, obarray[3], * pob..
C++ 생성자와 소멸자 생성자와 소멸자 생성자와 소멸자는 객체가 생성되거나 객체가 소멸될 때 자동적으로 호출되는 멤버 함수이다. 생성자 함수는 객체가 선언될 때 자동적으로 멤버 변수의 값을 초기화할 필요가 있기 때문에 존재한다. 소멸자는 보통 객체가 동적 메모리 등 자원을 할당 받았을 경우 객체가 소멸되기 전에 이를 제거하기 위해 사용된다. 생성자의 이름은 클래스 명과 동일한 이름으로 정의하며, 소멸자는 클래스 이름 앞에 칠다(~)기호를 붙여서 정의한다. 생성자와 소멸자를 정의하는 방법은 아래 예제와 같다. 예제 #include class POINT {// 클래스 이름 (point) 으로 정의 시작 private: int x, y;// private 멤버 변수 public: void SetPoint(int a, int b) {..