프로그래밍 언어/C || C++
-
C++ 에서 delete는 Virtual 일까?프로그래밍 언어/C || C++ 2018. 10. 12. 17:09
C++ 에서 delete는 Virtual 일까? new 연산자를 이용해 할당한 개체는 delete 연산자를 이용하여 메모리 영역을 해지할 수 있습니다.이 때, delete 연산자는 Virtual 일까요? -> 네! 이유는 delete 연산자가 virtual이 아니라면 제대로 메모리 영역이 해지되지 않기 때문입니다!비슷한 경우로 상속관계에서 다형성을 사용할 때, 소멸자는 항상 가상소멸자로 선언을 하는 것입니다. 만약 가상소멸자로 선언하지 않을 경우, 자식 클래스의 소멸자가 실행되지 않고, 부모의 소멸자만 호출되기 때문에상속관계에서 소멸자는 가상 소멸자로 코딩하는 것이 좋습니다!
-
C++ 람다 표현식 (Lambda Expression)프로그래밍 언어/C || C++ 2018. 10. 10. 17:05
대부분 대학교나 혼자 C++을 공부할 때, 기초가 되는 C++은 C++98입니다.C++11에서부터 Lambda를 지원합니다. 이 글은 Microsoft의 글을 참고해서 쓰는 글 입니다.(출처 : https://msdn.microsoft.com/ko-kr/library/dd293608.aspx) C++11에서 람다 식(종종 람다라고 함)은 호출되었거나 인수로서 함수에 전달된 위치에서 바로 익명 함수 개체를 정의하는 편리한 방법입니다. 일반적으로 람다는 알고리즘이나 비동기 메서드에 전달되는 몇 줄의 코드를 캡슐화하는 데 사용됩니다. C++의 람다식은 크게 6개의 부분으로 나눌 수 있습니다. 1. 캡처 절(C++ 사양에서는 lambda-introducer라고도 함)2. 매개 변수 목록 선택 사항입니다. (la..
-
Thread와 Thread 스케줄링프로그래밍 언어/C || C++ 2018. 5. 10. 11:20
Thread 의 우선순위를 지정하는 방법에 대해서 공부해보겠습니다! 우선 Thread 에 대해서 알아야겠죠? Thread 란 병렬적으로 여러개의 작업을 하기 위해 프로세스를 여러개의 Thread 로 나누어 작업을 수행하게 합니다. 쓰레드는 한번에 하나씩 동작할 수 있으므로 어떤 Thread 가 먼저 실행될 지는 아무도 알지 못합니다. 따라서 우선순위를 지정하여 Thread 의 스케줄링을 도울 수 있습니다. 그럼 우선순위를 지정하는 함수의 원형을 먼저 살펴보겠습니다. BOOL WINAPI SetThreadPriority( _In_ HANDLE hThread, _In_ int nPriority ); Parameter 의 의미를 살펴보겠습니다. HANDLE hThread [in] : 우선순위 값을 설정할 스레..
-
[C언어] bool, Boolean프로그래밍 언어/C || C++ 2018. 5. 8. 16:12
C언어에서 bool 자료형을 지원 할까? 정답부터 말하자면 "YES"이다. C99 표준부터 bool 자료형을 지원하지만 그 전에는 지원하지 않았기 때문에 사용자의 정의로 bool 타입을 만들어주었다. 가장 쉬운 방법으로서 typedef int BOOL; #ifndef FALSE#define FALSE 0#endif #ifndef TRUE#define TRUE 1#endif 위와 같은 코드를 정의하여 BOOL 자료형을 만들 수 있다. Enum 을 이용하면 좀 더 쉽게 만들 수 있다. typedef enum {false, true} BOOL;
-
TCHAR, LPCTSTR프로그래밍 언어/C || C++ 2018. 5. 8. 16:03
참고 : https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-6.0/aa300569(v=vs.60) LPCTSTR = Long Pointer to a Const Tchar STRingString Data 를 가리키기 위한 Const Character형 포인터이다. 비슷한 예로서 - LPSTR = char*- LPCSTR = const char*- LPWSTR = wchar_t*- LPCWSTR = const wchar_t*- LPTSTR = char* or wchar_t* depending on _UNICODE- LPCTSTR = const char* or const wchar_t* depending on _..