728x90
반응형

C++ 9

C++ 클래스 생성 / 헤더파일.

클래스 생성 단축키 : Ctrl + Shift + A - C++ 클래스 선택 - 이름 입력 클래스 추가 확인 헤더파일 정의 ifndef, #define, 그리고 마지막 줄에 #endif가 있습니다. 이건 헤더파일을 컴파일러가 호출할 때 여러번 호출되지 않게끔 하는 기능을 갖고 있습니다. // 헤더에서는 사용할 클래스와 함수 즉 선언부와 구현부 중에 선언부만 외부에 공개 한다. // 이후에 모듈을 만들어 외부에 배포하는 경우에는 모듈과 헤더만 주면 되기 때문이다. ( 캡슐화 ) 한 가지 주의할 점은 생성자가 하나라도 선언된 클래스는 기본 생성자가 자동으로 생기지 않는다는 점이다. .Cpp 파일 구현 사용 #include "Person.h" ... // 객체 생성 Person p1{ "JJW",test ,1..

C++ 2022.10.28

C++ 함수 포인터

함수 포인터 (function pointer) 포인터가 다른 변수의 주소를 저장하는 변수라는 것을 배웠다. 이와 유사하게 함수 포인터(function pointer)는 함수를 가리키는 변수다. 즉, 함수의 주소를 저장하는 변수다. 변수와 마찬가지로 함수는 메모리의 할당된 주소에 있다. 함수에 대한 포인터 (pointer to function) 비 상수 함수 포인터(non-const function pointer) 생성하는 문법은 C++에서 볼 수 있는 못생긴 문법 중 하나다. // fcnPtr 는 인수가 없고 정수를 반환하는 함수에 대한 포인터다. int (*fcnPtr)(); 상수 함수 포인터를 만들기 위해서는 * 뒤에 const 키워드를 사용하면 된다. int (*const fcnPtr)(); 함수 ..

C++ 2022.10.27

C++ 공용체 ( union )

공용체(union) 공용체(union)는 union 키워드를 사용하여 선언하며, 모든 면에서 구조체와 같습니다. 하지만 모든 멤버 변수가 하나의 메모리 공간을 공유한다는 점만이 다릅니다. 모든 멤버 변수가 같은 메모리를 공유하기 때문에 공용체는 한 번에 하나의 멤버 변수밖에 사용할 수 없습니다. 만약 하나의 변수를 사용하는데 다른 변수에 값을 할당하지 않은채 사용하려 시도하면 결과를 알 수 없습니다. 메모리 안에는 랜덤한 쓰레기 값이 들어있을 뿐입니다. - 공용체는 순서가 규칙적이지 않고, 미리 알 수 없는 다양한 타입의 데이터를 저장할 수 있도록 설계된 타입입니다. - 이러한 공용체는 크기가 가장 큰 멤버 변수의 크기로 메모리를 할당받습니다. - 공용체 배열을 사용하면, 같은 크기로 구성된 배열 요소에..

C++ 2022.10.27

C++ 구조체

구조체란? 구조체(structure type)란 사용자가 C++의 기본 타입을 가지고 새롭게 정의할 수 있는 사용자 정의 타입입니다. 구조체는 기본 타입만으로는 나타낼 수 없는 복잡한 데이터를 표현할 수 있습니다. 배열이 같은 타입의 변수 집합이라고 한다면, 구조체는 다양한 타입의 변수 집합을 하나의 타입으로 나타낸 것입니다. 이때 구조체를 구성하는 변수를 구조체의 멤버(member) 또는 멤버 변수(member variable)라고 합니다. C++의 구조체는 변수뿐만 아니라 함수까지도 멤버 변수로 가질 수 있습니다. 또한, C++의 구조체는 타입일 뿐만 아니라, 객체 지향 프로그래밍의 핵심이 되는 클래스(class)의 기초가 됩니다. 구조체 선언 struct 구조체이름 { 멤버변수1의타입 멤버변수1의이..

C++ 2022.10.27

메모리의 동적 할당(dynamic allocation)

메모리의 동적 할당(dynamic allocation) 데이터 영역과 스택 영역에 할당되는 메모리의 크기는 컴파일 타임(compile time)에 미리 결정됩니다. 하지만 힙 영역의 크기는 프로그램이 실행되는 도중인 런 타임(run time)에 사용자가 직접 결정하게 됩니다. 이렇게 런 타임에 메모리를 할당받는 것을 메모리의 동적 할당(dynamic allocation)이라고 합니다. 포인터의 가장 큰 목적은 런 타임에 이름 없는 메모리를 할당받아 포인터에 할당하여, 할당받은 메모리에 접근하는 것입니다. C언어에서는 malloc() 함수 등의 라이브러리 함수를 제공하여 이러한 작업을 수행할 수 있게 해줍니다. C++에서도 C언어의 라이브러리 함수를 사용하여 메모리의 동적 할당 및 해제를 할 수 있습니다...

C++ 2022.10.27
728x90
반응형