본문 바로가기

분류 전체보기612

C++ 함수 포인터 / 멤버 함수 포인터 기존수업에서 함수는 코드영역에 저장되고 컴파일 타임에 미리 생성이되며 주소를 갖는다고 배웠다. 이번에조사할 과제는 그 함수에 관련된 조사이다. 함수는 주소를 가지고있다 했고.. 포인터는 주소를 담는다고 했고.. 과연 함수 포인터가 무엇인지 알아보자. 함수 포인터 ? 함수는 다른 변수들 처럼 '주소' 를 가지고 있다. 이 함수의 주소를 포인터 변수에 저장하여 사용이 가능한 것을 '함수 포인터' 라고 한다. 아래의 예제를 통하여 선언의 형태를 확인하자. ●코드 예제1 int (*f)(int, int); // int리턴타입 // (*f)변수의 이름 f 를 함수포인터로 선언 // (int, int)함수의 매개변수 위처럼 선언하면 함수의 주소값을 저장할 수 있는 ' f ' 라는 함수 포인터가 만들어지게 된다. 이.. 2022. 11. 30.
C++ 생성자(복사,이동,push_back,emplace_back) https://m.blog.naver.com/enter_maintanance/221829474489 [C++] 생성자 (복사 생성자, 이동 생성자, Push_back, emplace_back) # 생성자 - Class를 통해 객체를 생성하려면 생성자를 거쳐야 하고 제거하려면 소멸자를 거쳐야 합니다. ... blog.naver.com 2022. 11. 30.
C++ 파라미터와 인자의 차이점 https://blog.naver.com/rjsgml198/222920945883 [C++ 022] Parameter(매개변수)와 Argument(전달인자)에 대하여 책을 보면 항상 Parameter(매개변수)와 Argument(전달인자)에 관해서 헷갈리는 경우가 있지 않나요? 예시... blog.naver.com 함수포인터에대하여 알아보다 모르는 단어가 나와 조사해보았다. Parameter 파라미터 = 매개변수 로 이해하고있었는데 Argument 인자 에 대해서 잘 모르고있었다. 참고하자. 해당 블로그가 막히거나 없어질 경우를 대비해 내용 그대로 아래쪽에 복사해두었다. 책을 보면 항상 Parameter(매개변수)와 Argument(전달인자)에 관해서 헷갈리는 경우가 있지 않나요? 예시를 보면서 확인하시.. 2022. 11. 30.
C++ 샵&인벤토리 아이템 수량 추가 지난번 과제에 아이템구매시 인벤토리가 계속 늘어나지않고 아이템의 종류별로 수량이 증가하도록 만들었다. 수량이 0개가되몇 인벤토리에서 아이템의 배열이 제거 된다. 아이템 구매시 아이템정보와 같은 함수가 프린트되면 갯수가 1개로 나오기때문에 별도로 상점 프린트함수를 만들었다. 추가적으로 플레이어의 돈은 랜덤으로 받아볼수있게 간단히 만들어봤다. Item.h #pragma once class Item { private: //자식한테도 비공개 protected: //자식한테만 공개 public: string name; int price; int num; // 아이템 갯수 Item(); //추상화로 생성했다면 가상함수로 소멸 virtual ~Item(); //생성자 오버로딩 //Item(string _name); .. 2022. 11. 29.
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.