728x90

2025/04 4

[C++] 가상 함수 (virtual function)

[C++] 가상 함수 (virtual function)가상 함수는 C++에서 다형성(polymorphism)을 구현하기 위한 핵심 개념입니다. 주로 상속 구조에서 기본 클래스 포인터(또는 참조)를 통해 파생 클래스의 함수를 호출할 수 있도록 도와줍니다.1. 가상 함수란? virtual 키워드를 사용하여 기본 클래스에 선언된 멤버 함수입니다. 파생 클래스에서 재정의(overriding)할 수 있으며, 이를 통해 런타임 다형성(runtime polymorphism)이 가능합니다.class Base {public: virtual void show(); // 가상 함수};2. 런타임 다형성의 동작 원리가상 함수는 동적 바인딩(dynamic binding)을 지원합니다. 즉, 컴파일 시점이 아닌 실행 시..

C++ 2025.04.23

[C++] static_cast 란?

[C++] static_cast 사용법 정리static_cast는 C++에서 제공하는 형 변환 연산자 중 하나로, 타입의 안전성을 일정 수준 보장하면서도 명시적인 형 변환을 가능하게 해줍니다. 주로 다음과 같은 상황에서 사용됩니다.1. 기본 타입 간의 변환int, float, double 같은 기본형 간의 변환에 사용됩니다.int a = 5;float b = static_cast<float>(a); static_cast는 명시적인 변환을 통해 컴파일러와 읽는 사람 모두에게 의도를 분명히 전달할 수 있습니다. 예를 들어 float → int 변환처럼 데이터 손실이 발생할 수 있는 경우에도 사용됩니다.2. 상속 관계에서의 포인터/참조 변환기본 클래스 포인터를 파생 클래스 포인터로 변환할 때 사..

C++ 2025.04.22

[C++] string_view와 C 스타일 문자열 비교

[C++] string_view와 C 스타일 문자열 비교C++에서는 문자열을 다루는 방식이 다양합니다. 그중에서 아래 두 코드처럼 "Hello"라는 문자열을 다르게 표현할 수 있습니다.char const msg[] = "Hello";std::string_view msg2 = "Hello"sv;두 표현 모두 "Hello"라는 같은 문자열 데이터를 가지고 있지만, 데이터 타입과 메모리 관리 방식에서 중요한 차이가 있습니다.1. msg — C 스타일 문자열char const msg[] = "Hello"; 타입: const char[6] (문자 배열) 내용: "Hello"는 5글자지만, 문자열 끝을 알리기 위해 \0(널 문자)이 포함되어 총 6바이트입니다. 메모리: 문자열 리터럴은 정적 메모리에 저장되고,..

C++ 2025.04.20

[C++] type-specifier-seq / 타입 지정자 시퀀스란?

[C++] type-specifier-seq란?type-specifier-seq는 C++와 같은 언어에서 변수나 함수의 타입을 정의하는 데 사용되는 일련의 타입 지정자(type specifiers)를 의미합니다. 이 구문은 변수나 함수의 자료형을 명시하고, 컴파일러에게 데이터의 종류와 동작을 설명해 주는 역할을 합니다.✅ 예시: int a = 10;에서의 type-specifier-seqint a = 10;위 코드에서 int는 type-specifier-seq의 일부입니다. 즉, 변수 a는 int 타입의 변수라는 의미입니다.🔍 type-specifier-seq란?type-specifier-seq는 하나 이상의 타입 지정자로 구성되며, 이 조합을 통해 변수 또는 함수의 타입을 정의할 수 있습니다.🧩 사..

C++ 2025.04.19
728x90