getAverage()함수 템플릿 작성 문제입니다. 문제 출처 -Power c++ 17장- 도와주세요.
문제는 이와 같이 됩니다.
코딩 아래와 같이... 어떻게 어떻게 해봤는데요...
제가 워낙 문외한이라.. 인터넷에서 찾아가며 해봤습니다.
전체적인 설명 부탁드립니다.
그리고 빌드하고 컴파일하면 오류로
error C2440: 'return' : 'Employee'에서 'double'(으)로 변환할 수 없습니다. d:\김경봉\c언어\practice\practice\practice.cpp 10 1
이렇게 뜹니다. 한번씩들 돌려봐 주시고 답변 부탁드립니다.
제가 사용한 프로그램은 VS2012 입니다.
#include <iostream>
using namespace std;
template <typ ename T>
double getAverage( T p[], int nsize )
{
T total = p[0];
for(int i=0; i<nsize; i++ )
total = total + p[i];
return total/(double)nsize;
}
class Employee
{
double nValue;
public:
Employee(double Value);
Employee();
~Employee();
Employee(const Employee& Rhs);
Employee operator + (const Employee& Rhs);
Employee operator / (double nValue);
void operator = (const Employee& Rhs);
void operator = (double nValue);
double GetValue() { return nValue; }
};
Employee::Employee() : nValue(0)
{
}
Employee::Employee(double Value) : nValue(Value)
{
}
Employee::~Employee()
{
}
Employee::Employee(const Employee& Rhs)
{
nValue = Rhs.nValue;
}
Employee Employee::operator + (const Employee& Rhs)
{
return Employee(nValue + Rhs.nValue);
}
Employee Employee::operator / (double Value)
{
return Employee(nValue/Value);
}
void Employee::operator = (const Employee& Rhs)
{
nValue = Rhs.nValue;
}
void Employee::operator = (double Value)
{
nValue = Value;
}
int main()
{
double arr[5] = {0, 1, 2, 3, 4};
cout<<getAverage(arr, 5)<<endl;
Employee arrEmp[5];
arrEmp[0] = 6.5;
arrEmp[1] = 7.8;
arrEmp[2] = 8.9;
arrEmp[3] = 9.1;
arrEmp[4] = 10.5;
Employee avr = getAverage(arrEmp, 5);
cout<<avr.GetValue();
return 0;
}
댓글 0