코딩 모닥불
  • 메뉴 닫기
  • 글작성
  • 방명록
  • 환경설정
    • 분류 전체보기
  • 홈
  • 태그
  • 방명록
카테고리 없음

[C++] 추상 클래스( abstract class )와 순수 가상 소멸자

추상 클래스와 순수 가상 함수( pure virtual function )복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려 내는 것을 추상화라고 합니다.C++에서는 주로 클래스를 통해서 이런 추상화를 하게 됩니다. 다음은 형태( shape )의 개념을 추상화한 클래스 CShape를 보여줍니다.class CShape{ // 형태를 추상화한 클래스public: virtual std::string_view GetName(){ return "Undefined"; } virtual float GetArea(){ return -1; }};이 클래스는 형태의 수많은 속성 중에서, 이름과 넓이를 프로그램에서 사용할 중요한 속성으로 생각해서 가..

2025. 4. 7.
카테고리 없음

[C++] C-style 문자열의 특징

C-style 문자열C++을 처음 배울 때, 대부분 아래와 같은 예문을 보게 됩니다.#include int main(){ std::cout 그리고, 이 예문에 사용된 "Hello, world!"가 C-style 문자열입니다. 이것을 좀 더 정확하게 정의하자면,C-style 문자열은 문자열 타입을 가진 리터럴( literal )이다라고 할 수 있습니다. 여기서, 문자열 타입이란 문자 배열( char array )을 말하고, 리터럴( literal )은 값을 직접 나타내는 프로그램 요소를 가리키는 단어입니다. 아래의 예제들을 통해, 이러한 리터럴의 개념을 알 수 있습니다.#include int main(){ int variable = 10; // integer literal ..

2025. 3. 25.
카테고리 없음

[C++] 초기값 리스트를 이용한 객체 초기화와 std::initializer_list

리스트 초기화( list initialization )배열을 여러 원소들로 초기화하려면, 다음과 같이 리스트 초기화( list initialization )를 사용하면 됩니다.int main(){ int intArray[] { 1, 2, 3, 4, 5 }; // list initialization for( int x : intArray){ // 범위 기반 for cout 여기서 말하는 리스트 초기화( list initialization )는, C++에서 변수를 초기화하기 위한 세 가지 방법 중 하나입니다. [C++] 초기화( initialization )의 세 가지 방법변수의 초기화( initialization )C++을 사용해서, 코딩을 하다 보면 의외로 다양한 방법으로 변수를 ..

2025. 3. 24.
카테고리 없음

[C++] 문자열을 읽기 전용으로 참조하는 std::string_view

std::string_viewstd::string_view는 문자열을 사용하면서 발생하는, 무거운 복사 과정을 줄이고자 만든 클래스입니다. C++ 17 이상의 버전에서 사용할 수 있는, 이 클래스는 실제 원본 문자열을 읽기 전용 방식으로 참조하는 기능을 합니다. string_view가 동작하는 방법은 다음의 비유를 통해 이해할 수 있을 것입니다. 자동차를 그리는 데는 두 가지 방법이 있습니다. 하나는 자동차를 사서 세워두고 그리는 방법입니다.하지만, 이 경우는 값 비싼 비용을 감당해야 합니다. 다른 하나는 남이 세워둔 자동차를 창 너머에서 보며, 그리는 방법입니다. 남의 차니까 그 차의 외형을 변경하거나 위치를 옮길 수는 없지만, 이 방법은 많은 비용이 들지 않습니다. 위의 두 번째 방법이 string_..

2025. 3. 19.
카테고리 없음

[C++] 이름 충돌을 해결하기 위한 namespace

namespacenamespace는, 단어에서 알 수 있듯이, 이름( identifier )이 유일하게 정의된 공간을 말합니다.그리고, 이러한 공간을 만드는 이유는, 생각 외로 자주 발생하는 이름의 중복을 막기 위해서입니다. C++에서는 아래와 같이 이름을 가진 두 함수가 같은 파일에 정의되어 있으면 컴파일러 오류가 발생합니다.// main.cpp ----------------------------------------int Compute(int a, int b){ return a + b;}int Compute(int a, int b){ return a - b;}그리고, 이 같은 이름의 두 함수가 각각 다른 파일에 정의되어 있다면 링크 오류가 발생합니다.// myMath1.cpp -------..

2025. 3. 19.
카테고리 없음

[C++] 사용자 정의 타입 enum을 입/출력 하기

enum 타입의 값을 문자열로 출력하기enum 타입의 열거자( enumerator )들은 사실 이름을 가진 정수형( integral ) 상수입니다. [C++] 몇 가지 값만 가질 수 있는 타입: unscoped enum두 가지 값만 가질 수 있는 타입 boolbool 타입은 C++의 기본적인 타입( fundamental type )의 하나입니다.이 타입은 키워드로 정해진 두 값 true와 false만을 가질 수 있는데, 이 상징적인 상수 true는 사실codingbonfire.tistory.comenum Stoplight { red, // 0 yellow, // 1 green, // 2 };그래서, std::cout를 통해 이 열거자를 출력해 보면..

2025. 2. 4.
  • «
  • 1
  • »

전체 카테고리

  • 분류 전체보기

블로그 인기글

태그

  • #std::sort
  • #이진 탐색
  • #std::string_view
  • #namespace
  • #동적 계획법
  • #const
  • #static_cast
  • #std::vector
  • #포인터
  • #소멸자
  • #inline
  • #using
  • #auto
  • #초기화
  • #깊이 우선 탐색
  • #std::unique_ptr
  • #상수 표현식
  • #예외 처리
  • #constexpr
  • #Enum
  • #함수 객체
  • #Lamda
  • #std::stack
  • #decltype
  • #범위 기반 for
  • #복사 생성자
  • #std::queue
  • #전처리기
  • #전방 선언
  • #헤더 가드
MORE
애드센스 광고 영역
Powered by Privatenote Copyright © 코딩 모닥불 All rights reserved. TistoryWhaleSkin3.4

티스토리툴바