개발공부/모두의 코드 C++(9)
-
C++ 기초개념 4-6 : explicit과 mutable 키워드
이글은 c++를 복습하기 위해 모두의 코드 https://modoocode.com/ 있는 강의 글을 보고 중요한 것들을 기록한 것입니다. explicit 키워드 explicit 키워드는, 간단히 말해 암시적 형 변환을 허용하지 않을 때 붙여주는 키워드이다. 이전에 만들었던 MyString 클래스를 예를 들어 다음과 같은 생성자와 함수를 추가해보자. MyString::MyString(int capacity) { string_content = new char[capacity]; string_length = 0; memory_capacity = capacity; std::cout
2022.11.22 -
C++ 기초개념 4-5 : 직접만들어보는 string
이글은 c++를 복습하기 위해 모두의 코드 https://modoocode.com/ 있는 강의 글을 보고 중요한 것들을 기록한 것입니다. 문자열 클래스 기존 C언어에서는 문자열의 마지막에 널 값('\0')을 삽입했다. C++에서는 표준 라이브러리로 string 클래스를 제공하고 있으므로, char* 대신 string을 사용해라 따라 해보면 도움이 됩니다. 면접에서 string 묻는 곳도 있다고 해서 저도 한번 따라 만들었습니다. 변수 : 문자열 길이, 문자열 내용, 사용하는 메모리 크기 char* string_content; int string_length; int memory_capacity; 구현할 메소드 : 생성자, 소멸자, insert, erase, find, reserve, assign, com..
2022.11.18 -
C++ 기초개념 4-4 :생성자 초기화 리스트, static 변수, 레퍼런스 타입을 리턴하는 함수, this 포인터 ,const 멤버 함수
이글은 c++를 복습하기 위해 모두의 코드 https://modoocode.com/ 있는 강의 글을 보고 중요한 것들을 기록한 것입니다. 생성자의 초기화 리스트(initializer list) 기존의 생성자 Marine::Marine() { hp = 50; coord_x = coord_y = 0; damage = 5; is_dead = false; } 생성자 초기화 리스트 Marine::Marine() : hp(50), coord_x(0), coord_y(0), damage(5), is_dead(false) {} 위 아래 둘다 하는 일이 똑같아 보이지만 차이가 있다. 무엇일까? 약간의 차이는 바로 왜냐하면, 초기화 리스트를 사용한 버전의 경우 생성과 초기화를 동시에 하는 것이고 반면에 초기화 리스트를 사..
2022.11.17 -
C++ 기초개념 4-3 : 복사 생성자(깊은 복사,얕은 복사) , 소멸자
이글은 c++를 복습하기 위해 모두의 코드 https://modoocode.com/ 있는 강의 글을 보고 중요한 것들을 기록한 것입니다. 예제 코드 더보기 #include class Marine { int hp; // 마린 체력 int coord_x, coord_y; // 마린 위치 int damage; // 공격력 bool is_dead; public: Marine(); // 기본 생성자 Marine(int x, int y); // x, y 좌표에 마린 생성 int attack(); // 데미지를 리턴한다. void be_attacked(int damage_earn); // 입는 데미지 void move(int x, int y); // 새로운 위치 void show_status(); // 상태를 보여준..
2022.11.16 -
C++ 기초개념 4-2 : 함수의 오버로딩 , 생성자 ,디포트 생성자
이글은 c++를 복습하기 위해 모두의 코드 https://modoocode.com/ 있는 강의 글을 보고 중요한 것들을 기록한 것입니다. 함수의 오버로딩 (Overloading) printf 는 C 라이브러리에 단 한 개 존재하고, scanf 도 C 라이브러리에 단 1 개 만 존재합니다. 하지만 C++ 에서는 같은 이름을 가진 함수가 여러개 존재해도 됨 그럼 C++ 에서는 같은 이름의 함수를 호출했을 때 구분을 어떻게 하는 것일까? 물론 단순하게 함수를 호출 하였을 때 사용하는 인자를 보고 결정 예를 보자 void print(int x); void print(char x); void print(double x); int a = 1; char b = 'c'; double c = 3.2f; print(a);..
2022.11.16 -
C++ 기초개념 4-1 : 객체
이글은 c++를 복습하기 위해 모두의 코드 https://modoocode.com/ 있는 강의 글을 보고 중요한 것들을 기록한 것입니다. 객체 객체란, 변수들과 참고 자료들로 이루어진 소프트웨어 덩어리 이다. 이 때 객체가 현실 세계에서의 존재하는 것들을 나타내기 위해서는 추상화(abstraction) 라는 과정이 필요 외부에서 직접 인스턴스 변수의 값을 바꿀 수 없고 항상 인스턴스 메소드를 통해서 간접적으로 조절하는 것을 캡슐화(Encapsulation) 라고 부릅니다. 클래스 클래스란 객체의 '설계도'이다. 우리는 이 객체의 설계도(클래스)를 통해서 실제 객체를 만들게 됨 C++ 에서 이와 같이 클래스를 이용해서 만들어진 객체를 인스턴스(instance) 라고 부른다.
2022.11.16