원래 상속이라는 것이 이렇게 하는 것이 아닌가여?
방방
-add.h
#pragma once
#include defaultGate.h
class and : public defaultGate
{
public:
and(void);
~and(void);
//and연산을 하는 함수
void gateOperation();
};
-add.cpp
#include and.h
//defaultGate함수를 통해서 inputX와 inputY를 초기화
and::and(void)
{
defaultGate();
}
and::~and(void)
{
}
void defaultGate::gateOperation()
{//AND연산을 통한 출력
result=inputX&inputY;
coutinputXinputYresultendl;
}
-defaultGate.h
#pragma once
#include iostream
using namespace std;
class defaultGate
{
public:
defaultGate(void);
~defaultGate(void);
virtual void gateOperation(void);
//inputX와 inputY에 값 저장하기
void setInput(unsigned short x,unsigned short y);
//연산 결과를 반환하기
unsigned short getOutput(void);
protected:
unsigned short inputX;
unsigned short inputY;
unsigned short result;
};
-defaultGate.cpp
#include defaultGate.h
defaultGate::defaultGate(void)
{
setInput(0,0);
}
void defaultGate::gateOperation(void)
{
result=0;
}
void defaultGate::setInput(unsigned short x,unsigned short y)
{
inputX = x;
inputY = y;
gateOperation();
}
unsigned short defaultGate::getOutput(void)
{
return result;
}
defaultGate::~defaultGate(void)
{
}
그런데 상속을 하고나서는 원래 inputX와 inputY는 add클래스에서 마음껏 사용할 수 있는게 아닌가요?
그리고 저거 result에다가 외부 클래스 멤버함수가 반환한 값도 집어넣을 수도 있는 거 아닌가요?
왜 오류가 나는건지..