C++ 에 대해 정리합니다.
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() 함수에 대해서 알아보자.
예외 처리 예외 처리를 사용하므로써 알고리즘이 마주할 수 있는 예외 상황에 대해 코드를 분리할 수 있다. 이 결과 알고리즘에 보다 집중할 수 있다. 에러를 만들어 보자.