본문 바로가기

전체 글222

Classic C++ : 1인수 생성자 1인수 생성자 개요하나의 인수를 갖는 생성자의 역할과 이를 이용한 암시적 형 변환에 대해 알아봅니다.C++ 버전별 주요 키워드 도입 시기C++98 이전: 1인수 생성자를 통한 암시적 형 변환은 초기 C++부터 지원되었습니다.C++11: explicit 키워드의 기능이 확장되어 명시적 형 변환을 더 유연하게 제어할 수 있게 되었습니다. 내용 설명1인수 생성자는 한 클래스의 객체를 다른 클래스(또는 다른 데이터 타입)의 것으로 변환할 때 많이 사용합니다. 즉, 변환 가능한 클래스를 만들고자 할 경우 1인수 생성자를 주로 사용합니다.ClassA CA = IntNum; 과 같은 형태의 초기화는 ClassA CA(IntNum); 와 동일하게 1인수 생성자를 호출합니다. 이때 =는 대입 연산자가 아닙니다.주의사항:.. 2025. 11. 15.
Classic C++ : 기본 생성자와 2인수 생성자 기본 생성자와 2인수 생성자 개요인수가 없는 생성자(무인수 생성자, 기본 생성자)와 2개의 인수를 갖는 생성자에 대해 알아보고, 초기화 목록을 사용한 멤버 변수 초기화 방법을 학습합니다. C++ 버전별 주요 키워드 도입 시기C++98 이전: 생성자 오버로딩, 초기화 목록(Initializer Lists)은 초기 C++부터 지원되었습니다. 내용 설명1. 기본 생성자(무인수 생성자)?Class에 생성자를 명시적으로 선언하지 않았을 경우 컴파일러는 무인수 생성자를 자동으로 만듭니다. 이를 기본 생성자라 합니다.즉, 인수가 없는 생성자를 기본생성자라 합니다.어떤 종류의 생성자를 명시적으로 선언하고 나면 생성자를 조작할 책임은 프로그래머에게 있습니다.2. 2인수 생성자?인수를 가진 생성자는 다양한 종류로 사용이 .. 2025. 11. 14.
Classic C++ : 생성자(constructor)와 소멸자(destructor) constructor and destructor 개요C++에서 객체가 생성될 때와 소멸될 때 자동으로 호출되는 특별한 멤버 함수인 생성자(Constructor)와 소멸자(Destructor)에 대해 알아봅니다. C++ 버전별 주요 키워드 도입 시기C++98 이전 (C++ with Classes): 생성자와 소멸자는 C++의 초기 버전부터 클래스의 핵심 기능으로 포함되었습니다. 내용 설명생성자란? 객체가 생성될 때 자동으로 실행되는 함수입니다.소멸자란? 객체가 소멸될 때 자동으로 실행되는 함수입니다. 예제 코드#include #include class Base{public: Base(){ // Constructor cout 실행 결과Starting main() functionI .. 2025. 11. 2.
Before Classic C++ : 레퍼런스(&)와 포인터(*) 10. 레퍼런스(&)와 포인터(*) 개요레퍼런스(reference)와 포인터(pointer)는 C++에서 메모리에 있는 기존 변수에 간접적으로 접근하는 방법을 제공합니다. 포인터는 변수의 메모리 주소를 저장하는 변수이고, 레퍼런스는 변수의 또 다른 이름(별칭)입니다. C++ 버전별 주요 키워드 도입 시기C++98: 포인터는 C에서 계승되었고, 레퍼런스(L-value 레퍼런스)는 C++ 초기부터 도입되어 객체를 효율적으로 전달하는 핵심 기능으로 사용되었습니다.C++11: R-value 레퍼런스(&&)가 도입되어, 임시 객체를 효율적으로 처리하는 이동 시맨틱(move semantics)과 완벽한 전달(perfect forwarding)이 가능해졌습니다. 또한, 0이나 NULL 대신 nullptr 키워드를 사.. 2025. 11. 1.
Before Classic C++ : struct 구조체 (struct) 개요구조체(struct)는 서로 다른 타입의 변수들을 하나의 논리적 단위로 묶어서 관리하는 사용자 정의 데이터 타입입니다. 관련된 데이터를 그룹화하여 코드의 구조를 명확하게 만들 수 있습니다. C++ 버전별 주요 키워드 도입 시기C99 이전 (C/C++): struct는 C 언어에서부터 존재했으며, 순수하게 데이터만을 묶는 역할을 했습니다.C++: C++에서는 struct가 확장되어 데이터 멤버뿐만 아니라 멤버 함수, 생성자, 접근 제어 지정자(public, private, protected) 등을 가질 수 있게 되었습니다. struct의 모든 멤버는 기본적으로 public 접근 권한을 갖습니다.C++11: 클래스 내 초기화(in-class member initialization).. 2025. 10. 31.
Before Classic C++ : Preprocessor 전처리기 (Preprocessor) 개요전처리기(preprocessor)는 소스 코드가 컴파일러에 의해 컴파일되기 전에 먼저 처리되는 특별한 지시문입니다. 주로 파일 포함, 매크로 정의, 조건부 컴파일 등의 기능을 수행합니다. C++ 버전별 주요 키워드 도입 시기C99 이전 (C/C++): #include, #define, #if, #endif 등 대부분의 전처리기 지시문은 C 언어 초기부터 존재했으며, C++에서도 처음부터 지원되었습니다.C++11/14/17: const, constexpr, inline 함수, 템플릿 등 타입에 안전하고 성능이 뛰어난 기능들이 강화되면서, 전통적인 #define 매크로의 사용은 점차 줄어드는 추세입니다. 내용 설명#include#include : 컴파일러가 지정한 표준.. 2025. 10. 30.
Before Classic C++ : Bitwise Operators 비트 연산자 (Bitwise Operators) 개요비트 연산자는 정수형 데이터의 비트(bit) 단위로 직접 조작하는 연산을 수행합니다. 하드웨어 제어, 데이터 압축, 암호화 알고리즘 등 저수준 프로그래밍에서 효율적인 데이터 처리를 위해 사용됩니다. C++ 버전별 주요 키워드 도입 시기C99 이전 (C/C++): 모든 기본 비트 연산자(&, |, ^, ~, , >>)는 C 언어 초기부터 존재했으며, C++에서도 처음부터 지원되었습니다. 내용 설명& (Bitwise AND): 두 비트가 모두 1일 경우에만 결과 비트가 1이 됩니다.| (Bitwise OR): 두 비트 중 하나라도 1이면 결과 비트가 1이 됩니다.^ (Bitwise XOR): 두 비트가 서로 다를 경우에만 결과 비트가 1이 됩니다.~ (Bi.. 2025. 10. 29.
Before Classic C++ : Conditional Operator 조건 연산자 (?:) 개요조건 연산자(?:)는 C++에서 유일하게 세 개의 피연산자를 갖는 삼항 연산자(ternary operator)입니다. if-else 문을 간결하게 표현하는 데 사용됩니다. C++ 버전별 주요 키워드 도입 시기C99 이전 (C/C++): 조건 연산자는 C 언어 초기부터 존재했으며, C++에서도 처음부터 지원되었습니다. 내용 설명조건 ? 표현식1 : 표현식2의 형태로 사용됩니다.조건이 참(true)이면 표현식1이 평가되고, 그 결과가 전체 연산의 결과값이 됩니다.조건이 거짓(false)이면 표현식2가 평가되고, 그 결과가 전체 연산의 결과값이 됩니다. 예제 코드#include #include int main() { // 예제 1: x에 값 할당 // 5 > 2 조건이 참이.. 2025. 10. 28.
Before Classic C++ : enum enum 개요열거형(enum)은 서로 연관된 정수형 상수들의 집합에 의미 있는 이름을 부여하여 코드의 가독성과 유지보수성을 높이는 사용자 정의 타입입니다. C++ 버전별 주요 키워드 도입 시기C99 이전 (C/C++): 전통적인 enum은 C 언어 초기부터 존재했습니다.C++11: 타입 안전성을 강화하고 이름 충돌을 방지하는 enum class (또는 enum struct)가 도입되었습니다. 또한, 열거형의 기반이 되는 정수 타입을 명시적으로 지정할 수 있게 되었습니다. 내용 설명enum [열거명] { 상수명 [= 상수값], ... }; 형태로 선언합니다.상수 값을 지정하지 않으면 첫 번째 상수는 0으로 시작하며, 이후 상수들은 이전 값보다 1씩 큰 값을 자동으로 갖게 됩니다.전통적인 enum의 상수들은.. 2025. 10. 27.