ProgrammingLang 119

[C++ 개발자되기] 8. binary file read 및 write

1. 목적 binary 및 text 파일을 읽기 및 쓰기 입니다. 파일 복사 및 암호화 파일 읽을때 유용합니다. 2. 필요 헤더 #include 2. 사용함수 1) Read 함수 (1) 함수 명 : ifstream (2) 핵심 옵션 : ifstream 핵심 옵션 std::ifstream::binary (3) 함수 선언 : explicit basic_ifstream( const char* filename, std::ios_base::openmode mode = ios_base::in ); (4) 참조 : https://en.cppreference.com/w/cpp/io/basic_ifstream 2) write 함수 (1) 함수 명 : ofstream (2) 핵심 옵션 : std::ios::out | st..

ProgrammingLang/c++ 2019.09.09

[C++ 개발자되기] 6. istringstream, ostringstream, stringstream 사용법

>>[C++ 관련 모든 글 보기] 1. istringstream과 ostringstream과 stringstream 은 무엇인가?? 문자열을 다룰 때 유용하게 사용 가능한 Class입니다. 1) istringstream - 문자열 포맷을 parsing 할 때 사용합니다. 2) ostringstream - 문자열 format을 조합하여 저장할 때 사용합니다. 3) sstringstream - 문자열에서 내가 원하는 자료형의 데이터를 추출할 때 사용합니다. 2. 헤더 정보 #include 를 include 하면 사용 가능합니다. 3. 기본 사용법 1) istringstream로 문자열 format을 분해 하기 - 다음 예제에서 space 또는 tap으로 구분된 "test 123 123hah ahha"를 각 ..

ProgrammingLang/c++ 2019.07.24

[C++ 개발자되기] 5. bind 사용법

>>[C++ 관련 모든 글 보기] 1. bind란 무엇인가?? 함수의 일부 매개 변수를 고정 값으로 세팅한 후, 한번 Wrapping 하여 사용할 수 있게 해주는 함수입니다. 2. 표준 시기 C++ 11에서 표준으로 채택 3. 사용 방법 bind를 할당하는 변수의 자료형에 따라 2가지 형태로 사용 가능 합니다 function 클래스를 사용하는 방법과 auto 키워드를 사용하는 방법 1) function Class를 사용(불편) std::function 변수명 = bind(함수명, 인자1, 인자 2,...); -> 함수명을 변수명에 연결시킵니다. 2) auito 키워드 사용(편리) auto 변수명 = bind(함수명, 인자 1, 인자 2,...); -> 함수명을 변수명에 연결시킵니다.. 물론 둘 다 사용 ..

ProgrammingLang/c++ 2019.07.23

[C++ 개발자되기] 4. lambda 사용법

>>[C++ 관련 모든 글 보기] 1. lambda는 무엇인가?? 1) 정의 - 이름 없는 함수입니다. 2) 형태 (1) 캡처 - Lambda 외부에서 정의한 변수를 Lambda 코드 부분에서 에서 사용하기 위해 선언 부분입니다. - 선언 방법의 종류는 다음과 같습니다. a. 복사 캡처 [ = ] 더보기 - 모든 변수나 상수를 복사로 캡처하고 현재 lambda객체에서 사용, - 전역(global) 범위까지가 그 캡처 범위입니다 b. 참조 캡쳐 [ & ] 더보기 - 모든 변수나 상수를 참조로 캡처하고 현재 lambda객체에서 사용 - 전역(global) 범위까지가 그 캡처 범위입니다 c. 현재 객체 캡쳐 [ this ] 더보기 - 클래스 멤버 함수안에서 정의되는 lambda는 [this]로 현재 객체를 참..

ProgrammingLang/c++ 2019.07.19

[C++ 개발자되기] 3. C++에서 Thread 사용법 (추가 정리 필요)

>>[C++ 관련 모든 글 보기] 1. thread관련 class는 무엇 인가?? 1) 표준 체택 시기 - C++11 에서 표준으로 채택 1) namesapce - std 2) Header - #include 3) class std::thread 2. thread 생성 방법 (4가지) 1) C 스타일 thread 생성 (함수 포인트 활용) (1) 사용법 thread(thread로 돌릴 함수, 넘길 인자); (2) 언제 쓰면 좋은가? - 2) Class의 Static 함수를 사용한 Thread 생성 (1) 사용법 thread(Class명:thread로 돌릴 함수, 넘길 인자); (2) 언제 쓰면 좋은가? - 3) Class의 멤버 함수를 사용한 Thread 생성 (1) 사용법 thread(Class명:th..

ProgrammingLang/c++ 2019.07.18

[C++ 개발자되기] 2. C++ Class의 필요성과 사용법

>>[C++ 관련 모든 글 보기] 1. C++에서의 Class의 목적 객체 지향 프로그래밍을 지원하기 위해 추가되었습니다. 2. 객체 지향 프로그래밍 이란 무엇인가? 프로그램을 기능 단위로 조각 내서 프로그래밍하는 것을 객체 지향 프로그래밍이라고 이해하면 됩니다. 3. 객체 지향 프로그래밍은 왜 필요한가? 먼저 객체 지향 프로그래밍의 필요성을 느끼기 위해서는 절차 지향형 프로그래밍의 단점을 이해해야 합니다. 절차 지향형 프로그래밍에서의 단점은 데이터와 데이터를 처리하는 함수의 연관성이 적은 것입니다. 이것이 왜 단점 이냐면 특정 Data와 연관 있는 함수들을 절차적으로 수행하고 있는데 이때 연관이 없는 함수를 섞을 놓을 경우 코드의 분석을 어렵게 하기 때문입니다. 예를 들어 TCP Server에서 Lis..

ProgrammingLang/c++ 2019.07.18

[C++ 개발자되기] 1. C에는 없고 C++만 있는 것

본 Serise는 C개발자가 C++개발자로 되는 과정에서 겪은 시행 착오를 정리하는 것 입니다. 그래서 목차가 없습니다. 생존을 위한 정리 입니다. 1. 현재 언어 별 스펙 점검 - C : 7년, C로 왠만한거 다 할 수 있음. - C++ : 10년전에 학교에서 배운것이 전부 - java : 10년전에 학교에서 배운것이 전부 - javascript : Web 개발자로 전향 할려고 좀 공부함 결론. 객체 지향의 객짜도 모르는 상태. 적어 놓고 보니 망했습니다... 그런데 현재 회사에서 C++로 개발 하고 있습니다. 2. C에는 없고 C++만 있는 것 1. 문법 1) class >> [C++ 개발자되기] 2. C++ Class의 필요성과 사용법 2) new 와 delete 3) auto 키워드 4) name..

ProgrammingLang/c++ 2019.07.17

[typescript] 12. interface 와 추상 class 차이

[typescript] 12. interface (인터페이스)와 추상 Class 차이 1. interface(인터페이스) 1) 개념 interface는 A와 B 간의 통신규약(약속)입니다. 그래서 interface에는 선언만 존재합니다. 좀 더 풀어서 설명을 하면, 프로그래머 A와 B가 총을 개발한다면 아래 와 같이 기능 개발을 따로 할 수 있습니다. - A : 총의 기능을 만듭니다. - B : 총을 실제로 사용하는 부분을 만든다. 그런데 개발 시간이 촉박하여 A와 B는 동시에 개발을 해야 한다고 할 때, A, B는 서로 공통적으로 사용할 부분을 미리 선언을 합니다. 여기서 미리 선언하는 정보를 모아 둔 것을 interface라고 합니다. A, B는 interface를 사용하여 서로 개발을 진행 후 B는..

[typescript] 11. 오버라이딩과 오버로딩 그리고 추상 class

[typescript] 11. 오버 라이딩(Overriding)과 오버 로딩(Overloading) 1. 오버 라이딩(Overrding) 1) 개념 부모 class에 정의된 method를 자식 class에서 재 정의하는 개념입니다. 2) 사용 이유 상속받은 부모 method를 무시하고 새로운 method를 정의하기 위해서 사용합니다. 그리고 추상 class를 구현하기 위해서 사용합니다. 3) 형태 (1) Overriding이 가능한 조건 A. overriden method의 매개변수 타입은 overriding method의 매개변수 타입과 같거나 상위 타입이어야 한다. (단, overrding method의 매개 변수 타입이 Any 타입이면 예외) B. overriden method의 매개변수 개수가 o..