개발자

C++ 질문 드립니다

2024년 01월 22일조회 92

함수 포인터 배열을 활용한 사칙 계산 문제입니다. 코드는 다음과 같습니다. #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일

아 두서 없이 질문 한 거 같네요. 저 문제는 다행히 제가 공부하는 커뮤니티 회원님의 도움을 받아 해결했습니다. 답변 감사합니다

great님의 프로필 사진

반환형 int * 변수 p는 int * 4바퀴돌면서 연산하려면 포인터 이동시켜야하니 p++ 하든지 아니면 p+i를 하든지 해야겠네요

문성원님의 프로필 사진

문성원

작성자

명지전문대학 정보통신공학과2024년 03월 20일

답변 이제야 보내네요 감사합니다. 답변 해주신대로 다시 코드 작성해서 문제 해결했습니다

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!