## 1. 다음을 만족하는 함수 `add()`를 작성해주세요. * 클래스 `A`와 `B`가 있음 * `A`에는 `int` 타입의 `numberA` 필드가 있음 (private) * `B`에는 `int` 타입의 `numberB` 필드가 있음 (private) * `add()`는 friend 함수 * `A`의 `numberA`와 `B`의 `numberB`를 더하는 동작을 함 ```cpp class B; class A { private: int numberA; public: A(): numberA(100) { } /* ... */ }; class B { private: int numberB; public: B(): numberB(200) { } /* ... */ }; int add (/* ... */) { /* ... */ } int main() { /* ... */ std::cout << add(/* ... */) // "300" 출력 return 0; } ``` ## 2. 다음을 만족하는 `Counter` 클래스를 작성해주세요. * `int` 타입의 `value` 필드가 있음 (private) * `++` 연산자를 오버로딩하여 다음과 같은 동작을 진행함 * 각 `++` 마다 2씩 더함 * 더한 수를 출력 (`cout`) * 오버로딩과 생성자를 제외한 메서드는 없음 ```cpp class Counter { private: int value; public: Counter(): value(0) { } /* ... */ }; int main() { Counter c; ++c; // "1" 출력 ++c; // "2" 출력 ++c; // "3" 출력 return 0; } ```