Programming

· Language/C++
※ LIG Nex1 The SSEN Embedded SW School에서 진행된 내용을 정리한 포스팅입니다.STL템플릿 기반의 강력한 라이브러리3가지 부분으로 나뉜다.container: 어떤 타입의 객체를 저장하기 위한 자료구조iterator: 데이터를 순회하기 위한 반복자algorithm: 컨테이너에서 사용할 수 있는 기능Containersequence container선형적으로 데이터만 저장하는 형태ex) vector, deque, listAssociatibe container비선형적 자료구조key-value, hash tableContainer adapterssequence 컨테이너에서 제약조건을 주어 특정 자료구조를 구현한다.ex) stack, queueiteratorconst iterator읽기..
· Language/C++
※ LIG Nex1 The SSEN Embedded SW School에서 진행된 내용을 정리한 포스팅입니다.파일 입출력 https://cplusplus.com/reference/ios/header Input-Output base classes Header providing base classes and types for the IOStream hierarchy of classes: Types Class templates basic_iosBase class for streams (type-dependent components) (class template)fposStream position class template (class tempcplusplus.comiostreamC에서부터 제공된 입출력 함수들을..
· Language/C++
※ LIG Nex1 The SSEN Embedded SW School에서 진행된 내용을 정리한 포스팅입니다.예외 처리컴파일 에러는 고마운 에러다.런타임 에러로 프로그램이 종료되는 것은 치명적이다.사용자 경험 측면에서도 좋지 않다.에러가 발생했음을 알리고 프로그램이 지속되도록 하는 것이 좋다.예외 처리의 3가지 키워드try/catch/throwtrytry 블럭 안에서 발생한 예외만 처리할 수 있다.함수 전체를 try로 묶을 수도 있지만 관련있는 코드끼리 한 블럭으로 묶는 것이 좋다.try 블럭에서 throw를 통해 예외의 발생을 catch 블럭으로 전달한다.try { /* code */ if (예외 발생 시) throw expn; /* code */ } caatch (type exn) { /* 예외처리 ..
· Language/C++
※ LIG Nex1 The SSEN Embedded SW School에서 진행된 내용을 정리한 포스팅입니다.템플릿: 코드 일반화에 사용된다.동작이 동일한 코드의 타입을 가상의 타입 이름으로 작성하여 사용 시 각 인자의 타입에 맞는 구현을 찾아간다.템플릿 함수컴파일러가 템플릿 코드를 컴파일 하면 호출된 코드의 파라미터를 확인하여 가상의 타입 이름을 해당 타입 이름으로 치환한 함수를 오버로딩 하여 제공한다.실행 시 파라미터의 타입과 동일한 함수를 호출한다.함수를 대상으로 하는 템플릿template T Add(T num1, T num2) { return num1 + num2;}호출 방법전달한 인자에 맞는 템플릿을 호출한다.int main() { cout 컴파일러는 함수 템플릿과 호출된 함수의 파라미터 타입을 ..
· Language/C++
※ LIG Nex1 The SSEN Embedded SW School에서 진행된 내용을 정리한 포스팅입니다.연산자 오버로딩연산자의 기능을 사용자 정의 클래스에 적용하는 것연산자의 기본 기능을 저해하면 안된다.`+`, `-`, `/`, `%`, `클래스의 멤버 함수로 정의하거나 전역함수로 정의할 수 있다.파이프 라인 연산자(main문에서 a + b 호출 시 a의 멤버 함수로 operator+(b)가 호출된다.a.operator+(b); // a + b와 동일하다.ostream에 Point라는 사용자 정의 클래스를 오버라이딩 할 수 없으므로 전역으로 오버라이딩한다.전역에서 호출하고 있지만 멤버 변수에 접근이 가능하도록 하기 위해 friend 키워드를 설정했다.friend 키워드는 객체지향을 부순다. 사용을 ..
· Language/C++
※ LIG Nex1 The SSEN Embedded SW School에서 진행된 내용을 정리한 포스팅입니다.다형성다형성동일한 코드가 실행 방법에 따라 다르게 동작하기 위함이다.함수 오버라이딩상속받은 멤버 함수를 하위 클래스에 적합하게 재정의함수의 프로토타입을 그대로 가져간다.업/다운 캐스팅상속 관계에서 사용하는 캐스팅가상함수재정의를 하더라도 실제 할당된 객체의 함수를 찾아가도록 하는 키워드오버라이딩상속 받는 객체의 함수가 적합하지 않은 경우 재정의를 통해 기능을 확장하거나 수정한다.정적 호출(정적 바인딩)은 타입을 따라간다.class Point {protected: int x; int y;public: Point():x(0), y(0) {} Point(int x, int y): x(..
· Language/C++
※ LIG Nex1 The SSEN Embedded SW School에서 진행된 내용을 정리한 포스팅입니다.상속상속의 1차원적 목적코드의 재사용성을 높이기 위해 사용한다.다형성을 구현하는 목적으로 사용된다.다형성: 객체 지향의 꽃상속 관계의 객체가 생성/소멸되는 순서상속받은 객체의 생성자는 상속 받은 모든 부모 객체의 생성자를 호출한 뒤에 호출된다.상속받은 객체의 소멸자는 상속 받은 모든 부모 객체의 소멸자의 호출한 후에 호출된다.class Point {private: int x, y;public: Point():x(0),y(0){} Point(int x,int y):x(x),y(y) {} printPoint() { cout Point가 Point3D로 확장되는 경우class Point3D {priva..
· Language/C++
※ LIG Nex1 The SSEN Embedded SW School에서 진행된 내용을 정리한 포스팅입니다.Static과 Singleton 패턴변수의 특징 globalstaticlocalregister메모리datadatastackregister선언 위치함수 밖함수 안/함수 밖함수 안함수 안유효 범위선언 후 파일 전체+ 외부 파일선언 위치에 따라 결정함수 안함수 안life span프로그램 종료 전(프로그램의 life span과 같음)프로그램 종료 전(프로그램의 life span과 같음)함수 종료 전함수 종료 전초기화자동자동 쓰레기 값쓰레기 값static 멤버 변수인스턴스에서 접근할 수도 있으나, class의 멤버 변수라고 생각하는 것이 좋다.class Test {public: static int a; in..
coco_daddy
'분류 전체보기' 카테고리의 글 목록