프로젝트에서 다음과 비슷한 구조가 있습니다. 다음과 같이인터페이스 용 일반 함수 구현
class ProgrammersCacluator {
public:
virtual int add(int a, int b);
virtual int rshift(int a, int b);
}
class MathematiciansCalculator {
public:
virtual int add(int a, int b);
virtual int multiply(int a, int b);
}
나는이 구현 오전 :
이class ProgrammersCalculatorI : public virtual ProgrammersCalculator {
public:
int add(int a, int b);
int rshift(int a, int b);
}
int ProgrammersCalculatorI::add(int a, int b) {
return(a + b);
}
int ProgrammersCalculatorI::rshift(int a, int b) {
return(a >> b);
}
class MathematiciansCalculatorI : public virtual MathematiciansCalculator {
public:
int add(int a, int b);
int multiply(int a, int b);
}
int MathematiciansCalculatorI::add(int a, int b) {
return(a + b);
}
int MathematiciansCalculatorI::multiply(int a, int b) {
return(a * b);
}
지금 나는이 추가 구문을 많이하지만, 그 대부분은 ICE (인터넷 커뮤니케이션 엔진)에 의해 적용됩니다 실현, 어떤이다 우리가 프로젝트의 섹션들 사이에서 통신하기 위해 사용하는 프레임 워크.
내가 특히 염려하는 것은 add
기능의 복제입니다. 나는 다중 상속을 시도했지만, (분명히) 작동하지 않았다.
ProgrammersCalculatorI
및 MathematiciansCalculatorI
의 구조를 조정하여 add
메서드를 한 번만 구현하면 되나요?
실제 프로젝트에서는 add
길이가 수백 줄이고 그와 같은 몇 가지 방법이 있습니다.
수학자와 프로그래머간에 공통적 인 모든 작업에 가상 함수를 제공하는 "HumansCalculator"인터페이스가 있습니까? – Chad