C++ 136

기초를 탄탄히 세워주는 C++ 프로그래밍 입문 10장 연습문제

[10.1]/*2개의 매개 변수 값을 교환하는 Swap 함수를 함수 템플릿으로 만들고 이를 테스트하기 위한main 함수도 작성해 본다. 실매개 변수의 값도 교환되어야 한다.함수 템플릿을 연습할 수 있는 기본적인 문제이다.어려움이 있다면 int형을 위한 swap 함수를 먼저 작성한 후 템ㅍ프릿 매개 변수로 바뀌어야 될 부분을 생각해 본다*/#include using namespace std; template void Swap(T &a, T &b){ T temp = a; a = b; b = temp;} int main(void){ int num1 = 10, num2 = 20; cout

기초를 탄탄히 세워주는 C++ 프로그래밍 입문 9장 연습문제

[9.1]/*그림 9.1과 같은 클래스 구성에 있어서 클래스 객체들 간의 복사 생성이 수행되는지테스트해보도록 한다. 다음과 같은 코드가 수행 가능한지 생각해보면 된다*/#include using namespace std; #define PI 3.14 class CPoint //임의로 추가한 CPoint 객체{private: int x; int y;public: CPoint(int a = 0, int b = 0) :x(a), y(b) { } CPoint &operator=(const CPoint &Po) { cout

기초를 탄탄히 세워주는 C++ 프로그래밍 입문 8장 연습문제

[8.1]/*다음 프로그램에서 잘못된 부분을 지적하고 수정해 본다.현재 상속 액세스 지정자가 public으로 되어 있다.엑세스 지정자가 protected와 private일 때는 어떻게 달라지는지 생각해 본다*/#include using namespace std; class Base{//private:public: int a;//protected:public: int b;public: int c;}; class Derived :public Base{private: //int d; //Derived 클래스 내에서는 접근 가능 void func1() { a = 1; //public 상속을 하더라도 Base 클래스의 private 멤버 접근 불가 b = 2; c = 3; d = 4; e = 5; f = 6; }..

기초를 탄탄히 세워주는 C++ 프로그래밍 입문 7장 연습문제

[7.1]/*예제 7.1에서 CPoint 클래스에 덧셈뿐만 아니라 뺄셈(Sub), 부호반대(Invert), 이동(Move),1씩 증가(Inc)를 위한 멤버 함수들을 추가해본다.main 함수와 실행 결과를 참고한다*/#include using namespace std; class CPoint{private: int x; int y;public: CPoint(int a = 0, int b = 0) :x(a), y(b) { } CPoint Sum(const CPoint &Po) { return CPoint(x + Po.x, y + Po.y); } CPoint Sub(const CPoint &Po) { return CPoint(x - Po.x, y - Po.y); } CPoint Invert() { return..

기초를 탄탄히 세워주는 C++ 프로그래밍 입문 6장 연습문제

[6.1]/*다음 프로그램의 문제점이 무엇인지 메모리 구조와 관련하여 설명해 본다*/#include using namespace std; class CArray{private: int *ary; int count;public: CArray(int c = 1) { count = c; ary = new int[count]; for (int i = 0; i < count; i++) ary[i] = i; } //이 문장을 추가하면 오류 해결(main문에서 delete Ary1을 해줘야한다) /* CArray(const CArray &copy) { count = copy.count; ary = new int[count]; for (int i = 0; i < count; i++) ary[i] = i; } */ ~C..

기초를 탄탄히 세워주는 C++ 프로그래밍 입문 5장 연습문제

[5.1]/*예제 5.4의 프로그램에서 3행 2열의 CPoint 객체 배열을 생성하되,배열 선언시에는 별도의 초기화를 하지 않고 단지 선언만 한 후,사용자로부터 각 원소의 x, y 값을 차례로 입력받도록한다.그리고 제대로 입력이 되었는지 출력을 통해 확인해보도록 한다*/#include using namespace std; class CPoint{private: int x, y;public: /* CPoint(int a, int b) :x(a), y(b) { } */ void SetXY(int a, int b) { x = a; y = b; } void Print() { cout

기초를 탄탄히 세워주는 C++ 프로그래밍 입문 4장 연습문제

[4.1]/*텔레비전을 클래스로 표현한다.그리고 이 클래스로부터 객체를 생성하고 사용해 본다.텔레비전을 표현하기 위해서는 브랜드, 가격, 제조회사, 제조일자 등의 속성이 필요하고켜다, 끄다, 채널을 돌리다, 볼륨을 조정하다 등의 메서드가 필요하다.이 외에도 필요한 속성과 메서드를 생각해보고 (예제 4.1)의 클래스와 같이 작성해 본다*/#include #include using namespace std; class TV{ //4.1에서는 아직 public private을 정의하지 않았다 char brand[20]; //브랜드 int price; //가격 char company[50]; //회사 char date[10]; //날짜 void TurnOn() //켜다 { } void TurnOff() //끄다..

기초를 탄탄히 세워주는 C++ 프로그래밍 입문 3장 연습문제

[3.1]/*int형 값에 대한 절대값을 반환하는 함수 Abs를 매크로와 인라인 함수로 구현해 본다.두 경우 모두 다음 코드의 반환값은 2가 되어야 한다Abs(-4+2);매크로 작성 시에는 매개 변수의 처리에 대해 주의해야 할 것이다.이를 통해 매크로보다 인라인 함수의 작성이 보다 쉽다는 것을 느끼게 될 것이다.*/#include using namespace std; /*#define Abs(X) (X>0?X:-X) //매크로*/ inline int Abs(int X){ if (X > 0) return X; else return -X;} int main(void){ cout

기초를 탄탄히 세워주는 C++ 프로그래밍 입문 2장 연습문제

[2.1] /*int형 변수 2개를 선언하고 cin을 사용하여 값을 입력받도록 한다.그리고 cout을 사용하여 두 값에 대한 사칙연산(+, -, *, /) 결과를 출력해 보도록 한다.어떤 값을 출력하기 위해서는 cout과 출력할 변수를 기술해 주면 된다.그런데 cout의 대상은 변수뿐만이 아니라 상수, 수식, 함수(반환값) 등 어떤 값이 동반되는 경우라면 어느 것이든 될 수 있다.*/#include using namespace std; int main(void){ int num1, num2; cout > num1 >> num2; cout

기초를 탄탄히 세워주는 C++ 프로그래밍 입문 1장 연습문제

[1.1]/*2개의 double형 값(x, y)을 입력받고 두 값에 대한 사칙연산(+, -, *, /) 결과값을 출력해 보라.실행 결과는 다음과 같다. y의 값은 0이 아니라고 가정하라*/#include int main(void){ double num1, num2; printf("두개의 실수 입력:"); scanf("%lf %lf", &num1, &num2); printf("%lf+%lf=%lf\n", num1, num2, num1 + num2); printf("%lf-%lf=%lf\n", num1, num2, num1 - num2); printf("%lf*%lf=%lf\n", num1, num2, num1 * num2); printf("%lf/%lf=%lf\n", num1, num2, num1 / nu..