본문 바로가기

C++ 프로그래밍3

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.
C++ 언어 기초 (1) - 개념, 빌드(build), 명칭공간(namespace) ▣ C++ 언어란? ▷ 1979년 Bell 연구소의 Bjarne Stroustrup이 C언어를 확장하여 만든 프로그래밍 언어이다. ▶ 1983년부터 C++이라는 이름을 사용했다. ▷ C언어와의 차이점? → 객체지향 프로그래밍 언어로, 클래스, 상속, 다형성, 동적 바인딩 등의 기능이 추가되었다. → 일반화 프로그래밍 기능인 템플릿 기능이 추가되었다. → 예외처리 기능이 추가되었다. ▣ C++ 프로그램의 작성과 빌드 ● C++ 소스 프로그램 파일 ▷ 처리하고자 하는 작업을 수행하는 C++ 프로그램 명령어들을 담고 있는 파일이다. ▶ 파일의 확장자로는 '.cpp', '.cxx', '.C' 등을 사용한다. ● C++ 헤더파일 ▷ 클래스, 함수의 원형, 매크로, 전역변수, 상수 등 여러 소스 파일에 공통적으로 .. 2020. 8. 26.
반응형