본문 바로가기

C++20

Effective C++ 항목 2 : #define을 쓰려거든 const, enum, inline을 떠올리자 선행 처리자보다 컴파일러를 더 가까이 하자 #define 은 선행처리 해버리기 때문에 컴파일러가 알 수 없다. #define Angle 1.653 이러면 에러 메세지에 Angle 대신 1.653만 나옴 (찾기 어려움) 대신 const를 사용한다. const double angle = 1.653; 나열자 둔갑술 (enum hack) 메모리 할당이 싫고, 해당 객체에서만 사용하게 하고 싶다. class GamePlayer { private: enum { NumTurns = 5 }; int scores[NumTurns]; ... } 표준에 어긋난 구식 방법이지만 유용함 매크로의 단점 선행 처리 하기 때문에 오용될 수 있음 #define CALL_WITH_MAX (a, b) f((a) > (b) ? (a) : .. 2023. 12. 12.
Effective C++ 항목 1 : C++를 언어들의 연합체로 바라보는 안목은 필수 용어 정리 선언(declaration) 코드에 사용되는 '어떤 대상'의 이름과 타입을 컴파일러에게 알려주는 것 정의(definition) 선언에서 빠진 구체적인 세부사항을 컴파일러에게 제공하는 것 -객체의 경우에 있어서 정의는 컴파일러가 그 객체에 대한 메모리를 마련해 놓는 것 초기화(initialization) 어떤 객체에 최초의 값을 부여하는 과정 기본 생성자(default constructor) 어떤 인자도 주어지지 않은 채로 호출될 수 있는 생성자 -원래부터 매개변수가 없거나 모든 매개변수가 기본 값을 갖고 있으면 기본 생성자가 될 수 있다 복사 생성자(copy constructor) 어떤 객체의 초기화를 위해 그와 같은 타입의 객체로부터 초기화할 때 호출되는 함수 복사 대입 연산자(copy as.. 2023. 12. 10.
스마트 포인터 2022. 11. 12.
#10. 네트워크 네트워크 Net과 Work의 합성어 컴퓨터와 같은 노드들이 통신 기술을 통해 그물망처럼 연결되어 통신을 하는 형태 데이터 및 리소스를 송신, 교환 또는 공유하기 위한 목적으로 케이블(유선) 또는 Wifi(무선)로 연결된 2개 이상의 컴퓨터로 구성 몇 개의 독립적인 장치가 적절한 영역 내에서 적당히 빠른 속도로 물리적 통신 채널을 통하여 서로가 직접 통신할 수 있도록 지원해주는 데이터 통신 체계 네트워크의 종류 WAN(Wide Area Network): 광대역 네트워크 지역 간 또는 대륙간의 넓은 지역의 컴퓨터를 연결. 인터넷은 전 세계 수십억 대의 컴퓨터를 연결하는 가장 큰 WAN MAN(Metropolitan Area Network): 대도시 영역 네트워크 일반적으로 도시 및 정부기관이 소유, 관리함 .. 2022. 5. 16.
#7. STL , - Vector STL은 표준 C++ 라이브러리 (Standard Template Library) 프로그램에 필요한 자료구조와 알고리즘을 Template로 제공하는 라이브러리 C++ : 상속, 캡슐화, 다형성(Template) Template? 자료형에 구애받지 않는 (상관 없는, 의존하지 않는) -> 어떤 자료형을 써도 상관 없는, 잘 동작하는 int char, double, class Animal, Lion, Bird push_back은 객체가 들어간다 그래서 그 객체를 생성해서 객체를 인자로 넣어주기떄문에 복사생성자를 생성하고 emplace_back은 생성자의 인자들만 넣어주면 알아서 인자에 맞는 생성자를 불러서 객체를 생성한다. 차이? push_back은 객체 넘겨줘야 하기 때문에 미리 객체를 한번 생성해줘야한다.. 2022. 4. 28.
#5. 자료구조 자료구조의 분류 자료구조는 크게 선형구조와 비선형구조로 나뉘어짐 선형구조: 선형 리스트(배열), 연결 리스트, 스택, 큐, 데크 자료를 구성하는 원소들을 순차적으로 나열시킨 형태 비선형구조: 트리, 그래프 하나의 자료 뒤에 여러개의 자료가 존재할 수 있는 형태 배열 인덱스를 가지고 있으며, 순차적으로 데이터가 삽입 삭제될 수 있는 형태의 자료구조 데이터를 순차적으로 삽입 삭제 할 때 가장 효과적 장점 (붙어있어서)인덱스를 사용하기 때문에 검색이 빠르다 단점 중간에 삽입 삭제가 어렵다 메모리 크기가 정해져있다 연결 리스트 ->그림 그리고 코드 설명할 수 있도록 무한 반복하기 자료들을 임의의 기억 공간에 기억시키되 자료 항목의 순서에 따라 노드의 포인터 부분을 이용하여 서로 연결시킨 자료 구조 연결을 위한 .. 2022. 4. 4.