C++/열혈 C++ 프로그래밍(윤성우 저)

열혈 C++ 프로그래밍 13-1 문제

꾸준함. 2017. 6. 15. 12:05

[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++ 프로그래밍 윤성우 저

반응형