일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- this call
- std::ostream
- increment operator
- new&delete
- return by reference
- std::endl
- virtual function table
- std::cout
- conversion constructor
- virtual inheritance
- 더 지니어스 양면포커
- vector capacity
- base from member
- discord bot
- c++ multi chatting room
- operator overloading
- c++ basic practice
- virtual function
- constructor
- virtual destructor
- vector size
- std::vector
- member function pointer
- C++
- diamond inheritance
- placement new
- pointer to member data
- suffix return type
- dynamic_cast
- delete function
- Today
- Total
목록C++/Basic Practice (10)
I'm FanJae.
1. Chapter 13 템플릿(Template) 1 1-1. 함수 템플릿의 정의① 인자로 전달되는 두 변수에 저장된 값을 서로 교환하는 SwapData라는 이름의 함수를 템플릿으로 정의해보자. - 그리고 다음 Point 클래스를 대상으로 값의 교환이 이뤄짐을 확인할 수 있도록 main 함수를 구성해보자.class Point{private: int xpos, ypos;public: Point(int x = 0, int y = 0) :xpos(x), ypos(y) { } void ShowPosition() const { cout #include template void SwapData(T& value, T..
1. Chatper 11. 연산자 오버로딩 II 1-1. 깊은 복사를 하는 대입 연산자의 정의① Chapter 07에서는 예제 HASComposite.cpp를 통해서 다음의 두 클래스를 정의하였다.class Gun{ ....}class Police{private: int handcuffs; //소유한 수갑의 수 Gun *pistol; //소유하고 있는 권총public: ....}- 이에 Police 클래스를 대상으로 깊은 복사가 이뤄지도록 대입 연산자와 복사 생성자를 동시에 정의하고 이의 확인을 위해 main 함수도 적절히 정의해보자.#include #include class Gun{private: int bullet; // 장전된 총알의 수pub..
1. Chapter 10. 연산자 오버로딩 I 1-1. 두 가지 방법의 연산자 오버로딩 - 연산자 오버로딩을 이해하는 가장 좋은 방법은 연산자를 직접 오버로딩 해 보는 것이다. - 연산자를 오버로딩 하는 과정에서 자신이 이해하지 못한 부분이 드러나면서, 그 부분을 이해하게 되는 경우가 많기 때문이다. 따라서 앞서 예제 GFunctionOverloading.cpp에서 보인 Point 클래스를 대상으로 아래의 요구대로 연산자를 오버로딩 해보자. ① Point 클래스에 대해서 다음 조건을 만족하는 형태로 - 연산자를 오버로딩 해보자.- 전역함수 기반으로 오버로딩- 멤버 별 - 연산의 결과를 담은 Point 객체 반환 ② Point 클래스에 대해서 다음 조건을 만족하는 형태로 += 연산자와 -= 연산자를 오버..
1. Chapter 08. 상속과 다형성 1-1. 상속 관계의 확장과 추상 클래스① 제 EmployeeManager4.cpp를 확장하여 다음 특성에 해당하는 ForeignSalesWorker 클래스를 추가로 정의해보자 - "영업직 직원 중 일부는 오지산간으로 시장개척을 진행하고 있다. 일부는 아마존에서, 또 일부는 테러의 위험이 있는 지역에서 영업활동을 진행 중에 있다. 따라서 이러한 직원들을 대상으로 별도의 위험수당을 지급하고자 한다." - 위험수당의 지급방식은 위험의 노출도에 따라서 다음과 같이 나뉘며, 한번 결정된 직원의 '위험 노출도'는 변경되지 않는다고 가정한다(const) - 리스크 A: 영업직의 기본급여와 인센티브 합계 총액의 30%를 추가로 지급한다 - 리스크 B: 영업직의 기본급여와 ..
※ Chapter 06은 별도의 연습 문제가 없었다. 1. Chapter 07. 상속(Inheritance)의 이해1-1. 상속과 생성자의 호출① 앞서 상속관계에 놓여있는 클래스의 생서앚 정의 및 호출 방식에 대해 설명하였다.- 이 내용을 바탕으로 다음 클래스에 적절한 생성자를 삽입해보자.- 그리고 이의 확인을 위한 main 함수를 적절히 정의 해보자.#include class Car{private: int gasolineGauge;public: int GetGasGauge() { return gasolineGauge; }};class HybridCar : public Car{private: int eletricGauge;public: int GetElecGague() { return eletricG..
1. 복사 생성자의 정의- 문제 04-3의 문제 2를 통해서 NameCard를 정의하였다. 그런데 이 클래스도 생성자 내에서 메모리 공간을 동적 할당하기 때문에 복사 생성자가 필요한 클래스이다. 이에 복사 생성자를 적절히 정의해보기 바라며, 복사 이후에 문제가 발생하지 않음을 다음 main 함수를 통해서 확인하기 바란다. int main(void){ NameCard manClerk("Lee", "ABCEng", "010-1111-2222", COMP_POS::CLERK); NameCard copy1 = manClerk; NameCard manSENIOR("Hong", "OrangeEng", "010-3333-4444", COMP_POS::SENIOR); NameCard copy2 = manSENIOR; ..
1. Chapter 04. 클래스의 완성1-1. 정보은닉과 const① - Chapter 03에서 제시한 과일장수 시뮬레이션 예제 FruitSaleSim1.cpp에서 정의한 두 클래스의 멤버변수는 private으로 선언이 되어있다. 그러나 다음 조건을 유지할 수 있는 장치는 아무것도 되어있지 않다.- 사과의 구매를 목적으로 0보다 작은수를 전달할 수 없다 - 위의 제약사항을 항상 만족시킬 수 있도록 예제를 변경하고, 예제의 안정성을 높일 수 있도록 일부 함수를 const로 선언해보자.#include using namespace std;// 과일장수 클래스class FruitSeller{private: int APPLE_PRICE; int numOfApples; int myMoney;pub..
1. Chapter 03. 클래스의 기본 1-1. 구조체 내에 함수정의하기① - 2차원 평면상에서의 좌표를 표현할 수 있는 구조체를 다음과 같이 정의하였다. - 위의 구조체를 기반으로 다음의 함수를 정의하고자 한다. (자세한 기능은 실행의 예를 통해서 확인하도록 한다).- 단, 위의 함수들을 구조체 안에 정의를 해서 다음의 형태로 main함수를 구성될 수 있어야 한다.struct Point{int xpos;int ypos;};void MovePos(int x, int y); // 점의 좌표이동void AddPoint(const Point &pos); // 점의 좌표증가void ShowPosition(); // 현재 x, y 좌표정보 출력#include struct Point{ int xpos; int y..
열혈 C++ 프로그래밍(윤성우 저)의 연습문제를 다뤘습니다.개인의 연습을 위해 다룬 것이며, 예제에 실제 공개된 코드는 첨부하지 않았습니다. 1. Chapter 02. C언어 기반의 C++ 21-1. 참조자 기반의 Call-by-reference 구현① 참조자를 이용해서 다음 요구사항에 부합하는 함수를 각각 정의하여라.아래 각 함수를 호출하여 그 결과를 확인하는 main 함수 까지 작성하여라. - 인자로 전달된 int형 변수의 값을 1씩 증가시키는 함수- 인자로 전달된 int형 변수의 부호를 바꾸는 함수#include void func1(int &n){ n++;}void func2(int& n){ n *= -1;}int main(){ int n = 3; func1(n); std::cout ② 앞서 소개..
열혈 C++ 프로그래밍(윤성우 저)의 연습문제를 다뤘습니다.개인의 연습을 위해 다룬 것이며, 예제에 실제 공개된 코드는 첨부하지 않았습니다. 1. Chatper 01. C언어 기반의 C++1-1. C++ 기반의 데이터 입출력 ① 사용자로부터 총 5개의 정수를 입력 받아서, 그 합을 출력하는 프로그램을 작성해 보자, 단 프로그램의 실행은 다음과 같이 이뤄져야 한다.1번째 정수 입력: 12번째 정수 입력: 23번째 정수 입력: 34번째 정수 입력: 45번째 정수 입력: 5합계: 15 #include int main(void){ int n; int sum = 0; for (int i = 1; i > n; sum += n; } std::cout ② 프로그램 사용자로부터..