[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 << '[' << xpos << ", " << ypos << ']' << endl;
}
};
*/
#include <iostream>
using namespace std;
class Point
{
private:
int xpos, ypos;
public:
Point(int x = 0, int y = 0) :xpos(x), ypos(y)
{
}
void ShowPosition() const
{
cout << '[' << xpos << ", " << ypos << ']' << endl;
}
};
template <typename T>
void Swap(T &num1, T &num2)
{
T temp = num1;
num1 = num2;
num2 = temp;
}
int main(void)
{
Point pos1(3, 4);
Point pos2(10, 20);
pos1.ShowPosition();
pos2.ShowPosition();
cout << "Swap 함수 실행결과" << endl;
Swap(pos1, pos2);
pos1.ShowPosition();
pos2.ShowPosition();
return 0;
}
[2번 문제]
/*
다음은 int형 배열에 저장된 값을 모두 더해서 그 결과를 반환하는 기능의 함수이다
int SumArray(int arr[], int len)
{
int sum = 0;
for (int i = 0; i < len; i++)
sum += arr[i];
return sum;
}
이 함수를 템플릿으로 정의하여, 다양한 자료형의 배열을 대상으로 합을 계산하는 예제를 작성해보자
*/
#include <iostream>
using namespace std;
template <typename T>
T SumArray(T arr[], int len)
{
T sum = 0;
for (int i = 0; i < len; i++)
sum += arr[i];
return sum;
}
int main(void)
{
double arr[10];
for (int i = 0; i < 10; i++)
arr[i] = (i + 1)*2.5;
cout << "전체 배열 출력:";
for (int i = 0; i < 10; i++)
cout << arr[i] << " ";
cout << endl;
cout << "합계는:" << SumArray(arr, 10) << endl;
return 0;
}
개발 환경:Visual Studio 2017
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~
[참고] 열혈 C++ 프로그래밍 윤성우 저
'C++ > 열혈 C++ 프로그래밍(윤성우 저)' 카테고리의 다른 글
OOP 단계별 프로젝트 10 (0) | 2017.06.15 |
---|---|
열혈 C++ 프로그래밍 13-2 문제 (0) | 2017.06.15 |
OOP 단계별 프로젝트 9 (0) | 2017.06.13 |
OOP 단계별 프로젝트 8 (0) | 2017.06.12 |
열혈 C++ 프로그래밍 11-2 문제 (0) | 2017.06.12 |