분류 전체보기

안녕하세요! 이번에는 C++에서의 깊은 복사와 얕은 복사에 대해 알아보겠습니다. 객체를 복사할 때는 이 두 가지 방법을 사용하여 메모리 관리와 객체의 독립성을 유지할 수 있습니다. 얕은 복사 (Shallow Copy) 얕은 복사는 단순히 객체의 멤버 변수를 복사하여 동일한 데이터를 공유하는 방식입니다. 이 경우에는 복사된 객체와 원본 객체가 같은 데이터를 가지므로 한 쪽에서 변경이 일어나면 다른 쪽도 영향을 받게 됩니다. 아래는 얕은 복사의 예제입니다.#include class ShallowCopy { private: int* data; public: ShallowCopy(int value) { data = new int(value); } void setValue(int value) { *data = v..
안녕하세요! 이번에는 C++에서 콜백 함수와 함수 포인터에 대해 알아보겠습니다. 콜백 함수는 한 함수가 다른 함수를 호출하고, 호출된 함수가 다시 원래의 함수로 돌아와 작업을 계속하는 것을 말합니다. 이를 통해 코드의 유연성과 재사용성을 높일 수 있습니다. 함수 포인터 함수 포인터는 함수의 주소를 저장하는 변수로서, 다른 함수를 가리키고 호출할 수 있는 기능을 제공합니다. 이를 이용하여 콜백 함수를 구현할 수 있습니다. 아래는 콜백 함수와 함수 포인터를 활용한 간단한 예제입니다. #include // 콜백 함수 시그니처 typedef void (*CallbackFunction)(int); // 콜백 함수 void MyCallback(int value) { std::cout
안녕하세요! 이번 글에서는 C++에서의 코딩 컨벤션에 대해 알아보겠습니다. 코딩 컨벤션은 일관된 코드 스타일과 가독성을 유지하기 위해 개발자들 간에 합의된 규칙의 모음입니다. 일관된 코딩 컨벤션은 코드의 가독성을 높이고 유지보수성을 향상시키는 데 도움이 됩니다. 명명 규칙 변수와 함수 이름은 소문자로 시작하고, 여러 단어일 경우에는 단어 사이를 밑줄(_)로 구분합니다. [ex)my_variable, calculate_area()] 클래스 이름은 대문자로 시작하고, 대문자로 이어지는 단어를 사용합니다. [ex) MyClass, MyCustomObject] 중괄호 위치 중괄호({})는 항상 새로운 줄에 시작하며, 해당 블록의 내용은 들여쓰기를 해줍니다. if (condition) { // code here ..
안녕하세요! 이번에는 전처리기 포스팅에 덧붙여서 C++에서의 조건부 컴파일에 대해 자세히 알아보겠습니다. 조건부 컴파일은 특정 조건에 따라 컴파일러가 코드를 포함하거나 제외하는 기능을 제공합니다. 이를 통해 운영 체제, 플랫폼, 컴파일러 버전 등에 따라 다른 코드를 사용할 수 있습니다. 조건부 컴파일은 주로 #ifdef, #ifndef, #else, #endif 등의 전처리기 지시문을 사용하여 구현됩니다. #ifdef와 #ifndef #ifdef는 지정된 매크로 심볼이 정의되어 있는지를 확인하고, 정의되어 있다면 해당 코드 블록을 컴파일합니다. #ifndef는 지정된 매크로 심볼이 정의되어 있지 않은지를 확인하고, 정의되어 있지 않다면 해당 코드 블록을 컴파일합니다. #ifdef MY_MACRO // M..
안녕하세요! 이번 글에서는 C++의 전처리기에 대해 자세히 알아보겠습니다. 전처리기는 C++ 프로그램을 컴파일하기 전에 소스 코드를 변형하는 역할을 합니다. 전처리기 지시문은 # 기호로 시작하며, 컴파일러에게 특정 작업을 수행하도록 지시합니다. 전처리기 지시문 전처리기는 전처리기 지시문을 사용하여 동작합니다. 몇 가지 흔히 사용되는 전처리기 지시문을 살펴보겠습니다. #include : 다른 파일의 내용을 현재 파일에 포함시키는 역할을 합니다. 일반적으로 헤더 파일을 포함할 때 사용됩니다. #define : 상수나 매크로를 정의합니다. #define 지시문을 사용하면 특정 값을 상수로 정의하거나, 코드 블록을 매크로로 정의할 수 있습니다. #ifdef, #ifndef, #endif : 조건부 컴파일을 수행..
안녕하세요! 이번 글에서는 C++에서의 동적 할당과 메모리 누수에 대해 자세히 알아보겠습니다. 동적 할당은 프로그램 실행 중에 필요한 메모리를 동적으로 할당하고 해제하는 방법입니다. 이를 통해 프로그램의 유연성과 효율성을 높일 수 있습니다. 하지만 동적 할당은 올바르게 사용하지 않으면 메모리 누수라는 문제를 일으킬 수 있습니다. 동적 할당 동적 할당은 new 연산자를 사용하여 메모리를 동적으로 할당하는 것을 의미합니다. 할당된 메모리는 힙 영역에 위치하며, 할당된 메모리에 접근하기 위해 포인터를 사용합니다. 다음과 같이 사용할 수 있습니다. int* ptr = new int; // 정수형 메모리 동적 할당 *ptr = 10; // 할당된 메모리에 값 저장 동적 할당은 필요한 만큼의 메모리를 할당할 수 있..
Lee Coder
'분류 전체보기' 카테고리의 글 목록 (17 Page)