본문 바로가기

공부259

C++ Lvalue & Rvalue 기본적으로 Lvalue & Rvalue 에 대하여 말하고자 한다면 Left value = 왼쪽값 / Right value = 오른쪽값 으로 이해할수있다. 이는 대입 연산자 ( = ) 을 기준으로 방향에따라 왼쪽값 그리고 오른쪽값 으로 이해할 수 있다. 하지만 C++의 관점에서는 전혀 다른 해석을 해야 할 필요가 있기때문에 이에 대한 조사를 진행한다. 참조 : https://effort4137.tistory.com/entry/Lvalue-Rvalue ●C++ 에서의 Lvalue Rvalue 의 구분 C++ 에서 모든 표현식은 Lvalue 또는 Rvalue 이다. Lvalue = 단일 표현식 이후에도 없어지지 않고 지속되는 객체.(즉, 이름을 가지는 객체/const 타입을 포함한 모든 변수) Rvlaue =.. 2022. 11. 29.
C++ 인벤토리 판매기능 추가 계속해서 수업중인 아이탬구매 및 인벤토리 구현에 이어서 이번과제는 인벤토리에 판매기능 넣기. Item.h #pragma once class Item { private: //자식한테도 비공개 protected: //자식한테만 공개 public: string name; int price; Item(); //추상화로 생성했다면 가상함수로 소멸 virtual ~Item(); //생성자 오버로딩 Item(string _name); Item(string _name, int _price); Item(const Item& src); //가상함수 : 자식클래스에서 재정의가 이루어질거라고 예상될 때 virtual void Print(); virtual Item* Create(const Item* src); }; class.. 2022. 11. 28.
C++ 복사생성자 & 팩토리패턴 오늘은 C++의 아이템구매와 인벤토리의 생성에 대한 수업이 진행 되었다. 아이템을 구매하고 구매한 아이템을 인벤토리에 복사하는 과정이 있었다. 같은 클래스의 객체로부터 정보를 복사하여 새로운 객체를 생성하는 복사 생성자에 대하여 조사해본다. 우선 코드를 가지고 예를 들어 보도록 하자. ●일반 생성자 & 복사 생성자 #include using namespace std; class Sample { private: int num1; int num2; public: Sample(int a, int b); // 일반 생성자 선언 Sample(const Sample& Sp); // 복사 생성자 선언 }; Sample::Sample(int a, int b) // 일반 생성자 구현 { cout 2022. 11. 28.
C++ 상점.인벤토리(추상화,가상함수 사용하기) Item.h #pragma once class Item { public: string name; int price; string info; public: Item(); virtual ~Item(); //가상소멸자 Item(string _name,int _price, string _info); virtual void Print(); //가상함수 Print() }; class Weapon : public Item //상속 { public: int att; Weapon(); ~Weapon(); Weapon(string _name, int _price, int _att, string _info); void Print() override; }; class Armor : public Item //상속 { publi.. 2022. 11. 27.
C++ 가상함수 & 재정의 지난번 클래스 구조의 생성자 & 소멸자에 대하여 공부 하였다. 이번에는 가상함구 & 재정의 에 대하여 조사를 진행한다. ● 가상 함수 ( Virtual Function ) 우선 가상 함수 ( Virtual Function ) 이란 무엇인지 알아보도록 하겠다. 이름만 보았을때 Virtual 이라는 것이 제일 먼저 눈에 띈다. VR 게임이 제일 먼저 떠오르기는 했으나 함수?와 어떤 연관이 있는지는 잘 떠오르지 않았다. 가상 함수란 ? C++ 에서 가상함수는 부모 클래스(class)에서 상속받을 클래스에서 재정의할 것으로 기대하고 정의해놓은 함수 라고한다. virtual 이라는 예약어를 함수 앞에 붙여서 생성할 수 있으며 생성된 가상함수는 파생 클래스(class)에서 재정의하면 이전에 정의 되어있던 내용들이 .. 2022. 11. 24.
C++ 코드작동 확인하는 참고 사이트 코드를작성하고 코드가 어느 저장공간에 저장되는지 코드의 작동 진행 순서가 어떻게되는지 육안으로 확인해볼수있는 사이트 이다. 모르는 코드들은 작동이 어떻게 되는지 한번씩확인해보기위해서 참조하였다. https://pythontutor.com/render.html#mode=display Python Tutor code visualizer: Visualize code in Python, JavaScript, C, C++, and Java Please wait ... your code is running (up to 10 seconds) Write code in Python 3.6 Java 8 JavaScript ES6 C (gcc 9.3, C17 + GNU extensions) C++ (g++ 9.3, C++2.. 2022. 11. 24.