싱글턴(Singleton) 패턴은 객체의 인스턴스가 애플리케이션 내에서 단 하나만 생성되도록 보장하는 디자인 패턴입니다. 이 패턴은 전역 변수를 사용하지 않고 객체에 대한 전역 접근을 제공하며, 동시에 여러 인스턴스의 생성을 방지하여 리소스 사용을 최적화할 수 있습니다. 생성자를 비공개로 만들어 클래스 외부에서 인스턴스를 직접 생성할 수 없게 합니다. 클래스 내에 정적(private static) 멤버 변수로 자기 자신의 유일한 인스턴스를 저장합니다. 공개적인 정적 메서드(getInstance) 를 제공하여 유일한 인스턴스에 접근할 수 있게 합니다. 이 메서드는 내부적으로 인스턴스가 존재하지 않을 경우에만 생성하고, 이미 존재하는 경우에는 기존 인스턴스를 반환합니다. #include class Singl..

C++20 이상: std::format 사용 예시C++20에서는 std::format이라는 새로운 함수를 도입하여 문자열 포맷팅을 더욱 쉽게 할 수 있게 되었습니다. 이 함수는 Python의 str.format과 유사한 방식으로 작동합니다. 다만, std::format은 컴파일 시간에 포맷 문자열을 검사하여 타입 안전성을 보장합니다.#include #include #include templatestd::string stringformat(const std::string& format, Args ... args) { size_t size = snprintf(nullptr, 0, format.c_str(), args ...) + 1; if (size buf(new char[size]); ..

아스트릭 처리된 경로 비교를 해봅시다절대 경로를 비교 할 때 * 처리된 경로까지 넣어서 비교해 봅시다.\ 구현/******************************************************************************* _ _ _ _ __ _____ _ _*| | | | | | | |/ / | __ \ | | | |*| |__| | __ _ ___ | |_ _| ' / | | | | _____ __ | | __ _| |__*| __ |/ _` |/ _ \_ | | | | | ..
다형성을 가진 기본 클래스에서는 반드시 가상 소멸자를 선언하자C++에서는 다형성을 가진 기본 클래스의 경우, 소멸자를 반드시 가상 소멸자로 선언해야 합니다. 그렇지 않으면, 기본 클래스 포인터를 통해 파생 클래스 객체를 삭제할 때 파생 클래스의 소멸자가 호출되지 않아 메모리 누수나 불완전한 소멸 문제가 발생할 수 있습니다.기본 클래스의 비가상 소멸자를 사용할 경우, C++ 표준에 따르면 기본 클래스 포인터를 통해 파생 클래스 객체를 삭제하는 것은 미정의 동작이 됩니다.예제 1: 비가상 소멸자의 문제점class TimeKeeper{public: TimeKeeper(); ~TimeKeeper(); // 비가상 소멸자};int main(){ TimeKeeper* ptk = getTimeKeep..
C++이 자동으로 생성하고 호출하는 함수들에 주의하자class Empty { };class Empty {public: Empty() { /* ... */ } // 기본 생성자 Empty(const Empty& rhs) { /* ... */ } // 복사 생성자 ~Empty() { /* ... */ } // 소멸자 Empty& operator=(const Empty& rhs) { /* ... */ } // 복사 대입 연산자};C++에서는 프로그래머가 명시적으로 선언하지 않아도 컴파일러가 자동으로 생성해주는 멤버 함수들이 있..
- Total
- Today
- Yesterday
- OpenSource
- CMake
- 암호화
- 블루버블다이빙팀
- 윈도우
- 서귀포블루버블
- 스쿠버다이빙
- 블루버블
- 성산블루버블
- DLL
- ReFS
- C#.NET
- 서귀포
- 울릉도
- Windows
- C++
- 리눅스
- Build
- 제주도
- PowerShell
- 패턴
- 블루버블다이브팀
- ip
- C#
- Thread
- Linux
- 현포다이브
- 디자인패턴
- C
- C# 고급 기술
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |