C++ 에 대해 정리합니다.

27 items under this folder.

  • Infomation 발표년도 : 1983 설계자 : Bjarne Stroustrup, 덴마크 패러다임 : 절차적 프로그래밍, 함수형 프로그래밍, 객체 지향 프로그래밍 절차지향, 객체지향의 성격을 동시에 띄기 깨문에, 굉장히 유연하고 강력하다.

  • Identifier Reserved Words 사용가능 문자 ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_0123456789 예약어는 안된다.

  • 함수의 기본 모양 수학에서의 함수와 같이, input , output 이 있고, input 이 들어갔을 때, 어떤 작업을 한 뒤, output 을 내보내는 방식으로 작동한다.

  • Local, Global Variables Local Variables 함수 안에서만 동작하고 함수가 끝나면 메모리에서 삭제된다.

  • Recursion Function Factorial 같은 함수를 구현하기 위해서는, 자기자신의 출력값을 다시 불러야 되는 필요성이 있다. 이것을 재귀함수라 한다. 11. Function Part.

  • Aliasing (Reference Variable) 기본적으로, 우리가 선언된 변수를 다른 변수에 할당하게 되면 이 값을 복사해서 사용하는 셈이 된다.

  • 참조변수와 일반변수의 사용의 차이점을 알았다면, main 함수가 동작하는 도중 다른 함수를 호출할때, 그 함수의 인자 역시 두 종류가 있음을 알 수 있다. 마찬가지로 일반변수와, 참조변수를 사용할 수 있다.

  • 기존에 작업한 글이 있어 링크로 대체한다. 05. Control Flow 06. Loop Part. 01 07. Loop Part. 02 iomanip library 기본적으로 iostream 라이브러리로 출력을 하게되면, 왼쪽 정렬이다.

  • fstream Reading from file #include <iostream> #include <fstream> #include <string> using namespace std; int main(){ string line1; string line2 ifstream myfile("input.txt"); if (myfile.is_open()){ if(!myfile.eof()){ // end of file 이 아니면 계속 진행.

  • String library method #include <string> #include <iostream> using namespace std; int main(){ string word = "good"; word.length(); // 길이 리턴 word.empty(); // 빈 문자열인지 1, 0값 리턴 word.clear(); // 문자열 삭제 word += "-bye"; // 더하기 가능 word[0]; // h word[word.length() - 1]; // 마지막...

  • What is pointer 포인터는 먼저 자료형으로 선언할 수 있다. 각각의 자료형에 대해 * 를 달게 되면 선언할 수 있으며.

  • What is Array? 직접적으로 값을 순차적으로 매핑한다. C언어에서 오래된 기술이고, 객체가 아니다.

  • What is Class? 우리는 클래스라는 개념을 왜 도입했을까? C++에서 함수가 태어나게 된 이유도 분리해서 관리하기 위함이었다.

  • Pass by Reference 내가 클래스를 만들고, 그 클래스를 바탕으로 객체를 만들었다. 이때, 이 클래스에 연결되어 있는, 함수를 메서드라 했다.

  • Overloading 같은 함수이름, 혹은 연산자를 사용하면서, 하나 이상의 정의가 가능한 방법이다. Function Overloading 연산자 오버로딩과 방식이 동일하다. 밑에서 예를 든것을 보고 이해해보자.

  • friend 두개의 클래스가 있을 때, 서로 만들어진 모든 멤버변수, 멤버함수를 공유하기 위해서 우리는 friend 라는 키워드를 사용할 수 있다. a 객체가 b 객체를 친구로 선언한다면 b객체는 a객체의 모든 변수와 함수값을 갖다가 사용할 수 있다.

  • static Members 때때로는, 클래스의 객체들이 모두 공유하는 변수를 가지는 것이 용이하다. 전역변수와는 조금 다른 점이 있다 공통점 : 특정 함수나 클래스가 끝나고 나서 변수가 사라지지 않는다. 차이점 : 특정 클래스에 구속되어 있다.

  • Destructor 소멸자는 특별한 멤버함수이다. 객체가 생성되고, 소멸될 때 호출된다. 소멸자의 목적은, 컴퓨팅 자원의 절약에 있다. 객체가 생성되고 계속 남아있다면 메모리 자원을 많이 소모하게 된다.

  • Inherence 전체적인 구조 상속이 필요한 이유 상속은 매우 유용하다. 13. Class & Object & Constructor 글을 다시 기억해보자.

  • Static Binding (정적 바인딩) #include <iostream> #include <string> #include <vector> using namespace std; class Base{ public: void f(){cout << "Base::f()" << endl;} virtual void vf() {cout << "Base::vf()" << endl;} }; class Derived:public Base...

  • Dynamic Binding (동적 바인딩) 그런데, 우리가 두 클래스가 상속관계에 있다는 것을 안다면, 이 멤버함수를 자동으로 묶어줄 수는 없을까? 이제 override , virtual 의 강력한 기능을 알 수 있다.

  • Header File 왜 사용하는가? C++ 코드를 작성하다가 보면, Class 내의 멤버변수, 멤버함수, 또 내가 만들어서 사용하는 사용자 정의 함수, main 함수 등 결국 어떤 프로그램을 동작하고 싶은 건지 전체적 구조를 알기 어렵다는 점이 있다.

  • List 이제껏 vector container 에 대해서 집중적으로 사용했는데, list container 역시 vector와 마찬가지로 많이 사용된다. Vector 장점 : search가 빠르다. 단점 : pop/ push 가 느리다.

  • Iterator 반복자는 33. Generic 함수이다. 즉, 일반적인 프로그래밍을 가능하게 하기위해 만들어진 전역함수이다. 우리는 배열을 다루기 위해 vector, array, list와 같은 것들을 사용했다.

  • Lambda function 함수 안에서 부를 수 있는 Local function! 사실 정체는 객체이지만, 우리는 함수의 개념으로 갖다 쓴다! Usage [closure](입력 매개변수)->출력 type{내용} Local function 이기 때문에 만들어졌다가 리턴 후 사라진다.

  • for_each() algorithm 라이브러리에는 다양한 함수가 있지만, 그중에서 for_each() 함수에 대해서 알아보자.

  • 예외 처리 예외 처리를 사용하므로써 알고리즘이 마주할 수 있는 예외 상황에 대해 코드를 분리할 수 있다. 이 결과 알고리즘에 보다 집중할 수 있다. 에러를 만들어 보자.