C++ 클래스 구조 및 대규모 프로젝트 아키텍처 설계
C++ 클래스 파일 분할 구조
C++는 C#이나 Java와 달리 클래스의 선언과 구현을 물리적으로 분리하는 구조를 가집니다. 일반적으로 헤더 파일(.h 또는 .hpp)과 소스 파일(.cpp)로 나뉩니다.
C#에서의 클래스 정의:
public class Employee
{
public void CalculateSalary()
{
// 구현 로직
}
}
C++에서의 클래스 정의:
// Employee.h
#pragma once
c ...
7월 26일 14:56에 게시됨
C++ 핵심 개념 정리
1. 객체지향 3대 특성
캡슐화(Encapsulation), 상속(Inheritance), 다형성(Polymorphism)
2. 접근 지정자
private, protected, public
3. 생성자와 소멸자
클래스에는 기본 생성자, 복사 생성자, 대입 연산자, 소멸자가 포함된다.
class Data {
private:
int x;
int y;
int z;
public:
Data(int a, int b, int c) : x(a), y(b), z(c) {
// 초기 ...
7월 21일 06:07에 게시됨
C++ 스마트 포인터의 원리와 활용
스마트 포인터가 필요한 이유
C++에서 동적 메모리를 직접 관리하다 보면 예외 발생 시 delete를 놓쳐 메모리 누수가 생길 수 있습니다. 특히 복잡한 제어 흐름이나 예외 처리 과정에서는 자원 해제를 보장하기 어렵습니다. 이를 해결하기 위해 '자원 획득은 초기화다(Resource Acquisition Is Initialization, RAII)'라는 개념을 기반으로 한 스마트 포인터가 등장했습니 ...
5월 23일 08:32에 게시됨