C++ Programming Ch.10 Exercise 7 Solution

Problem: 다음 프로그램은 컴파일 오류가 발생한다. 소스의 어디에서 왜 컴파일 오류가 발생하는가? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #include using namespace std; class Circle { int radius; public: Circle(int radius = 1) { this->radius = radius; } int getRadius() { return radius; } }; template T bigger(T a, T b) { // 두 개의 매개 변수를 비교하여 큰 값을 리턴 if (a > b) return a; else return b; } int main() { int a = 20, b = 50, c; c = bigger(a, b); cout << "20과 50중 큰 값은 " << c << endl; Circle waffle(10), pizza(20), y; y = bigger(waffle, pizza); cout << "waffle과 pizza 중 큰 것의 반지름은 " << y.getRadius() << endl; } Execution Result: ...

March 9, 2020 · 2 min · Sobamemil

C++ Programming Ch.10 Exercise 1 Solution

Problem: 배열을 받아 가장 큰 값을 리턴하는 제네릭 함수 biggest()를 작성하라. 또한 main() 함수를 작성하여 biggest()를 호출하는 몇 가지 사례를 보여라. Execution Result: Objective & Hints: 템플릿 함수 만들기 biggest()를 호출하는 코드 사례는 다음과 같다. 1 2 int x[] = {1, 10, 100, 5, 4}; cout << biggest(x, 5) << endl; // 5는 배열 x의 크기. 100이 출력된다. Code: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #include using namespace std; template T biggest(T a[], T n){ T big = a[0]; // 배열 a의 첫번째 원소를 big에 삽입 for(T i=1; i<n; i++) big = big < a[i] ? a[i] : big; // big보다 a[i]의 값이 더 크면 big에 a[i]의 값을 삽입 return big; } int main() { int big = 0; int x[] = {1, 10, 100, 5, 4}; cout << biggest(x, 5) << endl; } Explanation: ...

March 9, 2020 · 1 min · Sobamemil