개발자
함수 포인터 배열을 활용한 사칙 계산 문제입니다. 코드는 다음과 같습니다. #include <iostream> using namespace std; #define MAX_OP_COUNT 4 class UserObject { private: int (*mp_func_list[MAX_OP_COUNT])(int, int); public: int Add(int a, int b) { return a + b; } int Sub(int a, int b) { return a - b; } int Mul(int a, int b) { return a * b; } int Div(int a, int b) { return b ? a / b : 0; } UserObject() { mp_func_list[0] = &UserObject::Add; mp_func_list[1] = &UserObject::Sub; mp_func_list[2] = &UserObject::Mul; mp_func_list[3] = &UserObject::Div; } // [문제 2] 아래의 코드에 GetFuncList 함수의 반환값을 적어야 함 GetFuncList() { return mp_func_list; } }; int main() { UserObject data; // [문제 3] 아래의 코드에서 p변수의 자료형을 적어야 함 p = data.GetFuncList(); for (int i = 0; i < MAX_OP_COUNT; ++i) { // [문제 4] 아래의 코드에서 p 변수를 사용하려면 연산잔와 필요 형식을 적어야 함 cout << ( p )(5, 4) << endl; } return 0; } 결과 값: 9 1 20 1 [문제2], [문제3], [문제4]에서 요구하는 사항을 코드로 구현하려고 하는데 도저히 잘 몰라서 고수분께 여쭈어 봅니다.
답변 2
삭제된 사용자
2024년 01월 23일
안녕하세요. 문제가 명확히 의도한 바가 무엇인지 모르겠습니다. 교재나 강의 과제라면 그 흐름 속에서 봐야 할 것 같습니다. 제 나름 문제의 요구사항을 추론해보았을 때, 아시는 것처럼 C++ 함수 포인터 배열 키워드를 구글링해서 나오는 문법만으로도 해결이 가능할 것 같습니다. 이번 기회를 살려 정보를 탐색하며 시도해보는 경험을 추가해보시는 것도 좋을 것 같습니다. 도움이 되셨길 바랍니다.
문성원
작성자
명지전문대학 정보통신공학과 • 2024년 03월 20일
아 두서 없이 질문 한 거 같네요. 저 문제는 다행히 제가 공부하는 커뮤니티 회원님의 도움을 받아 해결했습니다. 답변 감사합니다
문성원
작성자
명지전문대학 정보통신공학과 • 2024년 03월 20일
답변 이제야 보내네요 감사합니다. 답변 해주신대로 다시 코드 작성해서 문제 해결했습니다
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!