-2
순수 가상 함수를 만들고이 다중 범위의 출력 형식 (예 : int, double 및 char)에 할당하려는 경우 문제가 있습니다.다형성의 다중 유형 출력
나는 코드 아래에 썼다. 그리고 나는 그것이 내가 원하는 것이 아닌 추상 클래스를 제거 할 때에 만 작동한다.
내 코드 :
내가 DynamicArray 클래스의 주석 및 DynamicArrayDouble 내가 몇 가지 오류와 함께 얼굴을 상속
enter code here
//class DynamicArray
//{
// public:
// virtual void GetData(unsigned int s, int& d) = 0;
// virtual void SetData(unsigned int s, int& d) = 0;
//};
class DynamicArrayDouble//: public DynamicArray
{
private:
unsigned int m_Length;
double* arr;
public:
DynamicArrayDouble(unsigned int l)
{
m_Length = l;
arr = new double[m_Length];
}
void SetParam(unsigned int l)
{
m_Length = l;
arr = new double[m_Length];
}
void GetData(unsigned int s, double& d)
{
d = arr[s];
}
void SetData(unsigned int s, double& d)
{
arr[s] = d;
}
};
이상 오류 코드이 될 것은 :
이class DynamicArray
{
public:
virtual void GetData(unsigned int s, void* d) = 0;
virtual void SetData(unsigned int s, void* d) = 0;
};
class DynamicArrayDouble: public DynamicArray
{
private:
unsigned int m_Length;
double* arr;
public:
DynamicArrayDouble(unsigned int l)
{
m_Length = l;
arr = new double[m_Length];
}
void SetParam(unsigned int l)
{
m_Length = l;
arr = new double[m_Length];
}
void GetData(unsigned int s, double* d)
{
*d = arr[s];
}
void SetData(unsigned int s, double* d)
{
arr[s] = *d;
}
};
int main()
{
DynamicArrayDouble d1(5);
double x=0;
for(unsigned int i=0;i<5;i++)
{
x = ((i+1.0)/2);
d1.SetData(i,&x);
}
for(unsigned int i=0;i<5;i++)
{
d1.GetData(i,&x);
cout << "Data " << i+1 << " is = " << x << endl;
}
return 0;
}
내가 codeblocks에 내 코드를 작성합니다.
감사합니다. 고맙습니다.
_i 얼굴 일부 오류 _. 그리고 그 오류는 ..? 일반적으로 오류는 정확히 무엇이 잘못 되었습니까? 복사하여 붙여 넣기가 어려웠습니까? –