Development/Native C, C++

동적 할당(Dynamic Allocation)런타임(프로그램 실행 중)에 필요한 메모리를 할당하는 것정적 메모리(컴파일 타임)와 대비되는 개념으로 주로 힙(heap) 영역에 메모리를 할당✅ 동적 할당을 사용하는 이유?• 배열이나 객체의 크기를 미리 알 수 없을 때• 런타임에 메모리 크기가 유동적으로 변할 때• 객체 수명을 직접 제어하고 싶을 때 malloc vs. new구분mallocnew정의C언어 스타일의 메모리 할당 함수C++ 스타일의 메모리 할당 연산자헤더 필요내장 키워드라 별도 헤더 불필요반환형void* (형 변환 필요)타입에 맞는 포인터 반환 (형변환 불필요)목적단순 메모리 블록 할당객체 생성 + 생성자 호출 malloc#include // malloc, free 사용int* p = (int..
클래스(Class)class 클래스명{ // 멤버 변수(상태), 멤버 함수(행동)..};객체지향 프로그래밍(OOP)의 핵심 구성 요소로, 데이터(멤버 변수)와 기능(멤버 함수)을 하나로 묶은 사용자 정의 타입클래스는 객체를 생성하기 위한 설계도 역할을 하며, 캡슐화, 상속, 다형성 같은 객체지향 원칙을 실현하는데 사용멤버 변수는 private으로 외부에 공개를 막고, public 함수를 통해 외부에서 안전하게 접근할 수 있도록 하는 캡슐화를 실현생성자와 소멸자를 통해 객체 생명주기를 관리할 수 있고, 필요에 따라 new와 delete를 이용해 동적 메모리도 관리 가능 개념 설명 상속 (Inheritance) 기존 클래스의 기능을 물려받아 새로운 클래스를 정의 ..
Const (Constant, 변하지 않는 상수)컴파일 단계에서 값을 더 이상 변경할 수 없도록 보호하는 키워드 변수 앞에 사용하는 방법const int x = 10;x = 20; // ❌ 오류! const 변수는 값을 바꿀 수 없음읽기는 가능하지만, 쓰기는 불가능 🚨 포인터와 const의 조합const 키워드가 붙는 위치에 따라 의미가 다르므로, 포인터와 const의 조합이 정말 중요함 const int* ptr 또는 int const* ptr포인터가 가리키는 값을 변경하지 못하도록 설정const int* ptr = &x;// int const* ptr = &x;// 또는 int const* ptr = &x; 도 동일*ptr = 5; // ❌ 안 됨! 값 변경 금지ptr = &other; //..
지역 변수C/C++에서 함수나 특정 블록 내에서 선언되는 변수로, 스코프가 선언된 블록에 한정void Example(){ int x = 10;}위와 같이 함수 내에서 선언된 변수는 함수가 실행되는 동안에만 메모리에 할당되고, 함수 종료와 함께 자동으로 소멸❓ 함수 종료와 함께 자동으로 소멸되는 이유지역 변수는 스택 메모리에 저장되기 때문, 스택은 함수 호출과 함께 동적으로 관리는 메모리 영역void example(){ int a; // 초기화되지 않음 -> 쓰레기 값 int b = 5; // 초기화됨 printf("%d\n", b); // 5 출력}지역 변수의 주요 특징 중 하나는 초기화하지 않으면 값이 쓰레기 값(garbage value)를 가지게 된다. Stat..
현실 세계의 사물이나 개념을 프로그램에서 객체로 모델링하여 처리하는 프로그래밍 패러다임C++은 OOP를 지원하며, 클래스를 사용하여 객체를 생성하고 이들 간의 상호작용을 제어클래스(Class)란? ->> 어떤 사물 또는 문제를 해결하기 위해 추상화를 거쳐 속성, 행동, 동작, 특징 등을 변수나 메소드를 통해 구현한 틀객체(Object)란? ->> 메모리를 할당받아 프로그램에서 사용되는 모든 데이터 ex) 변수, 함수, 구조체 등 객체 지향 프로그래밍의 주요 개념클래스(Class)객체를 생성하기 위한 설계도, 객체의 속성(변수)과 행동(함수)을 정의클래스를 사용함으로써 코드의 재사용성과 유지 보수성이 향상객체(Object)클래스에서 정의한 속성(변수)과 행동(함수)을 가진 실제 인스턴스클래스를 기반으로 ..
likepint
'Development/Native C, C++' 카테고리의 글 목록