본문 바로가기

C++20

#2. 복사 생성자의 호출 시점 복사 생성자의 호출 시점 복사 생성자의 호출시점은 크게 세 가지로 구분 기존에 생성된 객체를 이용해 새로운 객체를 초기화 하는 경우 Call-by-value 방식의 함수호출 과정에서 객체를 인자로 전달하는 경우 객체를 반환하되, 참조형으로 반환하지 않은 경우 1. 기존에 생성된 객체를 이용해 새로운 객체를 초기화 하는 경우 Person man1("Lee jinny", 29); Person man2 = man1; #include using namespace std; class Sample { int x; public: Sample(int n) : x(n) { } Sample(const Sample ©) : x(copy.x) { cout 2022. 2. 4.
#1. 왜 C++인가? / 생성자와 소멸자 C와 C++ 차이 C : 절차지향 / C++ : 객체지향(클래스 기반 문법들 많이 제공) 클래스 = 틀 = 자료형(int, float, double) 즉, 클래스란 객체(Object) 사용자 정의 자료형 클래스: 붕어빵 틀 객체: 붕어빵 게임이란? 객체들간의 상호 작용을 화면에 보여주는 것 (카트라이더에서 카트 class 객체들) C++ 쓰는 이유 중 하나 : 성능 성능: 속도 / 메모리 속도 : 비슷함 메모리 : 메모리 공간을 효율적으로 사용(낭비가 적음) 게임 설치할 때 메모리 부족하다고 뜨면 어차피 게임이 안 깔리니까 못함. 설치한 후 게임 도중 메모리가 부족하다고 뜨면 크래시 남. 메모리가 동적으로 변동됨. 동적으로 생성/해제 빈번 시간 복잡도(실행 시간), 공간 복잡도(메모리 공간) 생성자(Co.. 2022. 1. 25.
[C++] 참조(Reference) 본 내용은 POCU COMP3200: C++ 언매니지드 프로그래밍 강의를 토대로 작성하였습니다. 참조(Reference) C++에서 포인터 연산이 없어도 될 때, 주소 변경이 없어도 될 때 안전하게 쓰기 위해 참조 씀 포인터를 사용하는 좀 더 안전한 방법 하지만 Java만큼 제한적이지는 않음 먼저 이것부터 살펴 보자 값에 의한 호출(call by value) 참조에 의한 호출(call by reference) 포인터(pointer) 값에 의한 호출 원본은 안바뀜swap에서 나가면 arg1, arg2 값 그냥 날라가고 바뀐 거 없음. 원본 안바뀜 참조에 의한 호출 포인터를 받음. 즉 어떤 값의 주소를 받아오는 것주소를 받아서 주소에 있는 값을 직접 바꾸니까 원본이 바뀜 참조란? 별칭이다 값을 복사하는 게 .. 2022. 1. 22.
[C++] Bool 데이터형 본 내용은 POCU COMP3200: C++ 언매니지드 프로그래밍 강의를 토대로 작성하였습니다. 1. Bool 데이터형 C에서는 bool 형이 없었음. false는 0, true는 0이 아닌 모든 것 2022. 1. 21.
[C++] 입력(Input) 본 내용은 POCU COMP3200: C++ 언매니지드 프로그래밍 강의를 토대로 작성하였습니다. 1. 입력 스트림(Input Stream) 키보드에서 읽기 scanf는 왜 위험한가? scanf()는 경계검사를 하지 않는다! 경계검사 : 내가 사용하는, 쓸 메모리가 실제 내가 가진 메모리 내부에 들어가니? 들지 않으면 안전하게 연산을 하겠다. exception 등을 던진다. C 스타일의 문자열은 Character Array, 바꿔 말하면 Character Pointer임. 그래서 어느 정도의 메모리가 할당되어 있는지 실행 중에는 알 수 없음. 그래서 string 제일 뒤에 특수한 Character을 넣어서 string이 끝나는 것을 표시함. 이게 NULL Character Stream. 위 예제에서 문자 .. 2022. 1. 21.
[C++] C 스타일 배열과 std::array 본 내용은 [C++] 어서와! 자료구조와 알고리즘은 처음이지? 프로그래밍 강의를 토대로 작성하였습니다. 배열(array)이란? 같은 종류의 데이터가 연속적으로 저장되어 있는 자료 구조 메모리 주소는 시작 주소, 자료형의 크기, 인덱스 값을 조합해서 알아낼 수 있음 배열의 특징 인덱스(index)를 사용하여 원하는 원소(element)에 곧바로 접근 가능: O(1) 캐시 지역성(cahce locality) : 배열의 각 원소는 서로 인접해 있기 때문에 하나의 원소에 접근할 때 그 근방에 있는 원소도 함께 캐시(cache)로 가져옴 캐시(cache)*: 컴퓨터 구조 관점에서 CPU에 가까이 있는 고속 메모리 버퍼 반복문에서 배열을 사용하면 효율적인 프로그래밍이 가능 상수 또는 상수표현식으로 크기를 지정(크기.. 2022. 1. 20.