static2 C++ 언어 기초 (8) - static 데이터 멤버와 static 멤버함수 ▣ 객체의 메모리 공간 ● 객체를 저장하기 위한 메모리 공간 ▷ 일반적으로 객체마다 개별적으로 데이터 멤버가 메모리 공간을 할당받아 각각 존재한다. 멤버함수는 재호출이 가능한 구조이기 때문에 객체마다 개별적으로 멤버함수를 가질 필요 없이 공유해서 사용한다. ▷ 때에 따라 클래스 전체에 속하는 데이터 멤버를 사용하고 싶을 때도 있다. --> static 데이터 멤버 ● static 데이터 멤버 ▷ 클래스에 속하는 모든 객체들이 공유하는 데이터 멤버 ▷ 객체 생성과 관계 없이 프로그램이 시작되면 static 데이터 멤버를 위한 메모리 공간이 할당된다. ▷ 일반 데이터 멤버와는 달리, static 데이터 멤버는 클래스 선언문 내에서는 선언만 하고 클래스 외부에서 별도로 정의해야 한다. ▷ static 데이터 .. 2020. 8. 28. C++ 언어 기초 (7) - 디폴트/복사/이동 생성자 ▣ 디폴트 생성자 ● 디폴트 생성자(default constructor)란? ▷ 매개변수가 없는 생성자, 또는 모든 매개변수에 디폴트 인수가 지정된 생성자 ▷ 클래스 선언 시 생성자를 선언 안하면 컴파일러가 알아서 디폴트 생성자를 정의해준다. ▷ 생성자를 하나라도 선언하면 컴파일러는 묵시적으로 디폴트 생성자 정의하지 않는다. ● 묵시적 디폴트 생성자 ▷ 클래스 내에 생성자를 따로 선언해주지 않아도 컴파일러가 알아서 Counter(){ } 과 같이 묵시적 디폴트 생성자를 만들어준다. 클래스 외부에서 객체를 만들 때도 Counter cnt; 와 같이 매개변수 없이 만들 수 있다. /* Counter.h */ class Counter{ int value; public: //Counter() {} //생성자를 .. 2020. 8. 28. 이전 1 다음 반응형