씨쁠쁠39 뇌를 자극하는 C++ STL : 2장. 함수 포인터 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 가겹게 포스팅 하겠습니다. 1) 2장. 함수 포인터 함수 포인터는 함수의 주소를 저장하는 변수이다. 함수의 이름이 주소인것 또한 C언어 공부할때 배운것이 생각난다. 정적 함수 호출 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 - 정적함수 : 전역함수, namsspace내의 전역함수, static 멤버함수 다음 코드는 정적함수를 호출하는 방식이다. #include using namespace std; void Print(int n) { cout HTML 삽입 미리보기할 수 없는 소스 - 클라이언트가 서버를 호출하면 call, 서버가 클라이언트를 호출하면 callback - 서버가 여러 클라이언트에 의.. CS/C++ 2022. 1. 18. 뇌를 자극하는 C++ STL : 1장. 연산자 오버로딩 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 가겹게 포스팅 하겠습니다. 1) 1장. 연산자 오버로딩 이번 단원에서는 연산자 오버로딩에 대하여 컴파일러가 어떻게 해석하는지를 주로 배웠다. 이전에 따배씨쁠쁠에서 한번 싹 배운내용긴 하지만 복습겸 정독하였고, 또한 함수 호출 연산자 오버로딩을 집중하여 공부하였다. 함수 호출 연산자 오버로딩( () 연산자 ) " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 함수 호출 연산자는 객체를 함수처럼 동작하게 하는 연산자 입니다. 객체를 함수처럼 동작하게 하기 위해서는 호출연산자 "()" 를 정의해줘야 한다. 따배씨쁠쁠에서 배웠던 functor(함수 객체) 를 말한다. #include using namespace.. CS/C++ 2022. 1. 18. C++ 공부 섹션20 : 홍정모의 따배씨쁠쁠 <완강> 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1) 섹션20 드디어 마지막 시간이다. 이번시간에는 C++ 내용 위주라기보다는 알고 있어야할 상식에 대하여 알려주셨다. 정리는 간단이 할 예정이다. 20-1 비쥬얼 스튜디오로 프로파일링 하기 디버그 모드에서 사용하는 진단모드에서 CPU사용량과 메모리 사용량에 대하여 배웠고, 릴리즈 모드에서 프로파일링 하면서 가장 연산량을 많이 먹는 코드를 찾아가는 법을 배웠다. 8:2의 법칙 : 연산량의 80%를 전체 코드의 20%가 차지하는 것 이 일반적이다. 가장 느린부분을 하나 찾아서 거기에 80%의 노력을 들여서 맞추면 전체적으로 빨리지는 경향이 있다. 20-2 깃, 깃헙 시작하기 Gi.. CS/C++ 2022. 1. 18. C++ 공부 섹션18 입출력 : 홍정모의 따배씨쁠쁠 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1) 섹션18 이번시간에는 입출력에 관하여 집중적으로 배웠다. 버퍼같은 개념이 간단한 것 같으면서도, 처음에 만나면 좀 당황스럽다. 18-1 istream으로 입력받기 이번에는 istream에 대하여 조금더 자세히 배웠다. 기본적으로 stream은 buffer에 임시적으로 저장이 되었다가 일부분씩 꺼내오는 방식이다. 우선 다음의 오류가 나는 간단한 코드를 확인해 보자. buf의 사이즈가 10인대 입력문자가 10개가 넘어가 runtime에러가 발생하고 있다. 항상 이런점을 고려하면서 불편하게 사용해야 하는 것 일까? 아니다! iomanip (input/output manipula.. CS/C++ 2022. 1. 17. C++ 공부 섹션16 STL : 홍정모의 따배씨쁠쁠 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1) 섹션16 이번시간에는 STL에 대하여 배우는 시간이였다. 간략히 맛보기 시간이였던 것 같다. STL은 책을 따로 사서 공부할 예정이다. 16-1 표준 템플릿 라이브러리, 컨테이너 소개 항상 모든것을 직접 구현하여 사용한는 것 이 아니라, 자주 사용하는 것들을 표준으로 만들어논 라이브러리를 STL(Standard Template Libraries)라고 한다. STL은 4가지 위주로 구현이 되있다. 1) Algorithms, 2) Containers, 3) Functions, 4) Literators 이중 컨테이너 에 대하여 간단하게 배웠다. - Sequence_contain.. CS/C++ 2022. 1. 17. C++ 공부 섹션15 스마트포인터 : 홍정모의 따배씨쁠쁠 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1) 섹션15 이번시간에는 스마트 포인터에 대하여 배웠다. 15-1 이동의 의미와 스마트 포인터 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 C++에서 동적메모리를 직접 관리하는것은 불편하다. 이러한 부분을 개선한 smart pointer가 무엇인지? 어떤 역할을 하는지에 대하여 배우게 되었다. Resource.h #pragma once #include class Resource { public: int m_data[100]; public: Resource() { std::cout HTML 삽입 미리보기할 수 없는 소스 소스코드 중 Timer.. CS/C++ 2022. 1. 17. C++ 공부 섹션14 예외처리 : 홍정모의 따배씨쁠쁠 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1) 섹션14 이번시간에는 예외처리 에 대하여 배웠다. 아직 1년정도밖에 안된 나도 고수들의 코드를 보면 항상 느낀점이 예외의 경우를 상당량 고려한 코드를 작성함을 느낀적이 많다. 예외처리는 진짜 숙련된 만큼 처리가 가능한 것 같다(?). 14-1 예외처리의 기본 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 전통적으로 프로그램이 정상적으로 기능을하는지 확인하는 방식 에 대하여 우선 알아보자. #include #include #include using namespace std; int findFirstChar(const char* string,.. CS/C++ 2022. 1. 17. C++ 공부 섹션13 템플릿 : 홍정모의 따배씨쁠쁠 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1) 섹션13 이번시간에는 템플릿에 대하여 배웠다. 13-1 함수 템플릿 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 템플릿은 여러가지 비슷한 코드에 대하여 반복하여 작업하는 것 을 방지해 준다. 우선 가장 간단한 함수 템플릿에 대하여 알아보자. 두개의 숫자를 비교하여 더 큰 숫자를 return하는 함수를 생각해 보자. 우선 다음 코드를 확인해 보자. int getMax(int x, int y) { return (x > y) ? x : y; } double getMax(double x, double y) { return (x > y) ? x .. CS/C++ 2022. 1. 17. C++ 공부 섹션12 다형성 : 홍정모의 따배씨쁠쁠 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1) 섹션12 이번시간에는 다형성과 가상함수 에 대하여 심도있게 배웠다. 12-1 다형성의 기본 개념 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 이번시간에 내용을 다루기전 하나의 질문을 갖어보자. 만약 자식 class의 객체에서 부모 class의 포인터를 사용한다면 어떻게될까? #include #include using namespace std; class Animal { protected: string m_name; public: Animal(string name) : m_name(name) {} string getName() { retu.. CS/C++ 2022. 1. 16. [C++] 오버로딩(Overloading) 과 오버라이딩(Overriding) 차이 본인 조차 overload와 override가 다름을 처음 C++배우는 입장에서 구별하지 못하고 있었다. 처음에는 단순히 이름만 다르게 부르는줄 알았지만 중요한 개념이였다. 한번 간략이 정리하고 넘어가야겠다. Overloading " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 오버로딩은 함수의 이름은 같지만, 파라미터(매게변수)나 type 또는 매게변수의 수가 다른 function을 중복선언하는것을 말한다. 특징: 1) 멤버함수의 이름이 같아야 한다. 2) Parameter(매게변수)의 수가 달라야 한다. 3) Parameter(매게변수)의 수가 같은경우, 데이터 type이 달라야 한다. 4) return type은 함수를 오버로딩할때 영향을 미치지 않는다. 즉 같아도 .. CS/C++ 2022. 1. 16. C++ 공부 섹션10 객체관계 : 홍정모의 따배씨쁠쁠 내돈내고 내가 공부한것을 올리며, 시간을 들여 배운과정을 복습하기보다는 간결히 공부한 흔적은 남긴다 하고 생각하고 써갈 예정입니다. 모든 내용을 이곳에 올릴수는 없으며, 그중 기억남은 몇가지 내용 위주만 올리겠다. 1) 섹션9 확실히 생각을 다시 곱씹어가며 한줄 한줄 블로그에 정리하며 공부하는 것 크게 도움되는 것 같다. 이번 시간에는 객체지향에 대한 보편적인 사용법과 방식들을 공부하게 되었다. class와 object들의 관계를 위주로 배우게 되었다. ◆ 10-1 class에는 크게 4가지의 관계들이 있었다. 구성, 집합, 연계, 의존 관계가 있었으며 각각에 대해서는 코드를 보면 더욱 명확히 히해할수 있다. 간단히 실생활 예로 먼저 생각해보면, 1. 구성: 뇌(부품)와 사람(전쳬) 에서는 뇌가 사람의.. CS/C++ 2022. 1. 16. C++ 공부 섹션6 : 홍정모의 따배씨쁠쁠 내돈내고 내가 공부한것을 올리며, 시간을 들여 배운과정을 복습하기보다는 간결히 공부한 흔적은 남긴다 하고 생각하고 써갈 예정입니다. 모든 내용을 이곳에 올릴수는 없으며, 그중 기억남은 몇가지 내용 위주만 올리겠다. 1) 섹션6 초중반부 까지의 포인터와 배열은 어렵지 않았는대 뒤에 for_each문 나오는 부분부터 조금 이해가 안갔다. 생소해서 사용법이 익숙하지 않은 것 같다. 내일은 진도를 빼지말고 섹션6의 후반부를 조금더 복습해야 겠다. ◆ enum을 배열에서 활용하는 방식이 독특하여 캡쳐해 두었다. enum 마지막 element로 NUM_STUDENTS가 있는대 이를 전체 학생수로 활용할 수 있었다. main에서 배열을 이를 활용하여 선언하는 것 을 볼수 있었다. ◆ 뭐 당연한거기는 한대 arra.. CS/C++ 2022. 1. 16. 이전 1 2 3 4 다음