본문 바로가기

VisualStudio.C++.C#/C . C++   ( 31 )


C,C++. enum /// enum 기본. enum { enum_1 // 초기값 설정하지 않으면 첫멤버값은 0. ,enum_2 // 초기지 기록하지 않으면 앞에 기록된 멤버값 +1 의 값을 가짐. }; // 멤버 정수값을 사용자 임의 지정 가능. 통상 지정해서 사용함. enum { enum_1 = 100 // ,enum_2 = 32 // ,enum_3 = 100 // enum_1 과 값은 값. 멤버 중에 있는 값과 중복되는 것으로 설정해도됨. }; //----------------------------------------------------------- typedef enum /// typedef enum 실 코딩에서 유용하게 많이 사용됨. /// 팁 . 멤버이름에 enum_ 부착하는게 사용시 혼선 작음. 안그럼 이게 .. 2019. 5. 16.
C,C++. enum with get string. 첫등록 : 2019년 5월 12일. 최종수정 : 본 글 단축주소 : https://igotit.tistory.com/2161 2019. 5. 12.
C++ 클래스. 함수 오버라이딩. 가상함수. 순수가상함수. 추상 클래스.인터페이스 클래스. base class 에서 상속된 derived class 에 동일이름의 함수(예 : myFunction )가 있는 경우, base 클래스측의 함수선언에 따라 다른 동작이 이뤄진다. 아래 테이블의 항번 1, 2, 3 에 base 클래스 측의 함수선언방식 3 종을 보이고 있다. 항번 base class derived class 1 class base { void myFunction(); }; class derived : base { void myFunction(); }; 2 class base { virtual void myFunction(); }; 3 class base { virtual void myFunction() = 0 ; }; virtual , 오버라이딩. 상기 1 처럼 base 클래스의 함수 선.. 2017. 6. 23.
C++ 클래스 static 변수 초기화. class my_class{static int my_int ;} 상기와 같은 static 변수는 클래스 외부(통상 cpp 상단이 적당)에서 아래 처럼 초기화 처리 해줘야 한다. int my_class::my_int = 0; ///1252. 2017. 3. 13.
C++ std::chrono, time_point, duration, system_clock, steady_clock 고정밀 시각, 시간. 개요 고정밀 시각, 시간측정용 std::chrono 는 "C++11" 이후 도입, Visual C++ 2012 이후 도입. 용어. 시각 : time point. 시간 : time interval, 2개 시각의 간격. 특징 - 고정밀(최소 시간단위 : 나노초), 편리기능 함수들. - 주요 클래스 : duration, time_point - 주요구조체 : system_clock, steady_clock - steady_clock 특징 Visual C++ 에서는 내부적으로 QueryPerformanceCounter 로 구현되어있음. monotonic. 늦게 호출된 now() 가 먼저 호출된 now() 이상의 값(같거나 더 큰 값)이 나온다는 의미. 헤더파일 #include 더보기 Include the stan.. 2016. 2. 20.
C/C++ 실수형 float, double 표준 IEEE754. 실수자료형 사용시 주의사항. 개요 C/C++ 컴파일러들 (Keil, GCC, Visual C++ 포함) 의 실수형 수(floating-point numbers, 부동소수점 수 ) "표현" 표준 IEEE754 single-precision : 32bit, float. 표현가능 값 : ±1.18×10−38 to ±3.4×1038 double-precision : 64bit, double. 표현가능 값 : ±2.23×10−308 to ±1.80×10308 IEEE754 정의 wiki : https://en.wikipedia.org/wiki/IEEE_754-1985 위키백과 : https://ko.wikipedia.org/wiki/IEEE_754 상기 표현 규칙 자체는 응용프로그램 코딩하는 경우에 활용할 일은 없으나, 표현 형식의 한계 때.. 2016. 2. 18.
C++ std::thread 클래스 이용한 스레드. 클래스멤버함수를 스레드로 실행시키는 방법. 개요 std::thread 클래스 개요및 스레드 생성 코드 예, 클래스 멤버함수를 스레드로 실행시키는 방법 . C++11부터 std::thread 클래스 로 스레드 생성 가능하며, VC++ (Visual Studio 2012 이후 )에서도 사용가능하다. VC++에서 통상적인 스레드 생성하는 AfxBeginThread 방식(상세보기 -> http://igotit.tistory.com/211 ) 보다 많이 편하다. 헤더 : thread 클래스 프로그램내의 스레드 생성 관리. 설명 You can use a thread object to observe and manage a thread of execution within an application.A thread object that's created by u.. 2016. 1. 16.
C++. 함수 인자로 포인터 전달하고 함수내에서 동적 메모리 할당 받기 2가지 방식. ** *& 문제 정의 통상적인 동적 메모리 할당은 아래와 같다. CMyClass * p_myclass = new CMyClass(); 그런데, 위와 달리 포인터변수 선언만 하고, 동적할당은 별도의 함수에서 하고 싶다고 하자. 즉, 아래 코드구조처럼 함수 function의 인자로 p_myclass 를 전달하여 function p_myclass 를 동적할당 받고 싶다. CMyClass * p_myclass; // 포인터변수 p_myclass 선언만 했다. function(p_myclass); // 이 함수호출하고 나면 p_myclass 동적할당 되게 하려함. 흔히 하게 되는 틀린 코드 사례. CMyClass * p_myclass; function(p_myclass); function(CMyClass * p_myclas.. 2016. 1. 4.
C++. 파생 클래스에서 베이스 클래스의 인자 있는 생성자 실행되게 처리법 개요. C++ 에서 상속관계에 있는 "베이스 클래스 - 파생클래스" 에서 파생클래스 측에서의 생성자 처리법 정리. 요구사항. 1. 베이스 클래스에 인자있는 생성자만 정의해뒀다. 2. 파생클래스에도 인자있는 생성자가 정의되어있다. 2. 파생클래스 개체 생성시 상기1의 베이스클래스의 인자있는 생성자 호출되게 하고 싶다. 2가지 방법 가능. 방법1. 파생클래스에 인자있는 생성자의 선언 및 정의시 베이스클래스의 생성자 명시적 실행되도록 한다. 방법2. 파생클래스에는 별도의 생성자 만들지 않고 베이스클래스의 생성자를 상속받아서 사용한다. 방법2가 더 간단함. 방법1. // 베이스 클래스에 인자있는 생성자를 정의하였다. class CBase { public: CBase(int a); // 베이스 클래스의 인자 있는.. 2015. 12. 28.
C++. 클래스 생성자 관련 기초 지식. - 디폴트 생성자/복사생성자/디폴트복사생성자/Shallow Copy/Deep Copy 등. 개요. C++ 클래스 생성자 기초지식. C++ 클래스의 생성자 관련 기초 지식들 정리. 1. 클래스의 디폴트 생성자. 2. 클래스의 복사 생성자. 3. 디폴트 복사 생성자는 shallow copy 수행함. Deep Copy 원하면 복사생성자 명시적으로 정의하고 복사생성자 내에 값복사코드 추가할것. 클래스의 디폴트 생성자. 1. 컴파일 과정에서 자동으로 추가되는 생성자 를 디폴트 생성자라 한다. 디폴트 생성자는 인자없고 디폴트생성자 내에서 처리하는것도 없다. 2. 코드 작성시 클래스에 생성자를 구현하지 않은 경우, 컴파일 단계에서 클래스에 디폴트 생성자가 자동삽입되고 클래스 개체 생성시 디폴트 생성자가 실행된다. 참고 : 소멸자를 명시적으로 정의하지 않은 경우에도 컴파일 단계에서 자동으로 디폴트 소멸자가 .. 2015. 12. 28.
2차원 이상 배열의 메모리 배치순서. 2차원이상의 배열을에서 각 요소들이 실제 메모리에서 배치되는 순서. 메모리 배치 순서 : 배열 인덱스 뒤의 것부터 순차적으로 증가, 뒤의 배열인덱스가 최대수량이후 그 앞의 인덱스 증가, 예. 1차원 배열. array[N] 메모리 배치 : array[0], arry[1], ..., array[N] 2차원 배열. array[N][M] 메모리 배치 : array[0][0],array[0][1],...,array[0][M], array[1][0],array[1][1],...,array[1][M],..., array[N][M] N차원 배열도 동일. 예외. 동적 할당 한경우에는 연속배치되지 않음.- 주의할것. 2차원 이상의 배열을 동적할당한 경우에는 열 단위로 배열요소의 메모리 주소의 연속성이 끊김. 즉 array.. 2015. 1. 17.
STL std::function 기반 콜백함수 구현. 개요 통상 콜백함수 구현시 함수포인터 기반으로 구현하는 방식 (보기 -> http://igotit.tistory.com/212 ) 으로는 클래스 멤버함수를 콜백으로 등록하지 못하는 단점이 있다. STL (Standard Template Library) 에서 제공하는 std::function, std::bind 등을 사용하면 클래스 멤버함수도 콜백함수로 등록가능하므로 대단히 편리하다. STL 기반 콜백구현방법 아래 설명방식에서 "다른 곳", "이곳" 이란 표현은 함수포인터 기반 콜백구현방법 설명글 (http://igotit.tistory.com/212 )에서의 것과 동일한 것임. "이곳"에 있는 함수(클래스의 멤버함수도 가능하다.)를 다른곳(예. 다른 클래스 개체, DLL등 )에 전달하여 다른 곳에서 "이.. 2015. 1. 11.
함수포인터, 콜백(Callback) 함수포인터 1. int Function(int a) {... } ; 로 정의된 함수가 있다치자. 2. 위 1의 함수의 포인터(함수이름이 포인터임)를 받을 수 있는 함수포인터 변수 pFunc 선언하고 1의 함수포인터를 대입하는 방법 int (*pFunc)(int) = Function; 3. 2처럼 대입하고나서, pFunc(1); 이라고 호출하면 Function(1); 이 호출되는 것임. 4. 1의 함수를 다른 함수 "myfunc" 의 입력인자 로 전달하기 위한 다른 함수 "myfunc" 정의 방법. void myfunc( int (*pFunc)(int) ) { pFunc(1); } myfunc 호출시 상기1의 함수를 인자로 전달하는 법 : myfunc(Function); 5. 상기2와 같은 함수포인터 변수.. 2015. 1. 11.


 

비트코인




암호화폐       외환/나스닥/골드         암호화폐/외환/나스닥/골드
     
현물 |선물 인버스 |선물 USDT       전략매니저(카피트레이딩)         프랍 트레이더 온라인 지원가능. MT4,MT5