Пожалуйста, помогите мне и позвольте мне задать глупый вопрос. Я объявила переменную x как DeriveType (DeriveType - это класс). Я хочу назначить int y для x, например int y = x Но когда я компилирую, компилятор показывает ошибку error: не может преобразовать 'const DerivType' в 'int' Пожалуйста, скажите мне, как решить эту проблему , спасибо. уважением,Назначить тип переменной и класс
Это класс DerivType
class DerivType;
typedef DerivType (*ddf_FctPtr)(const DerivType&);
class DerivType { private: interval f, df, ddf;
public: DerivType ();
DerivType (const interval&, const interval&, const interval&);
DerivType (const DerivType&);
DerivType& operator= (const DerivType&);
friend DerivType DerivConst (const real&);
friend DerivType DerivConst (const interval&);
friend DerivType DerivVar (const real&);
friend DerivType DerivVar (const interval&);
friend inline const interval fValue (const DerivType&);
friend inline const interval dfValue (const DerivType&);
friend inline const interval ddfValue (const DerivType&);
friend DerivType operator+ (const DerivType&);
friend DerivType operator- (const DerivType&);
....
И у меня есть функция любит это.
DerivType f (const DerivType& x)
{
DerivType result;
DerivType xx;
double sum;
xx = x;
//Convert x from DerivType to double
void *pVoidx = &xx; [1]
double *pDoublex = static_cast<double*>(pVoidx); [2]
MLPutReal(lp, *pDoublex);
MLGetReal(lp, &sum);
//Convert from double to DerivType for the return value of function
printf("x = %f, result = %f\n", *pDoublex, sum);
void *pSum=∑ [3]
DerivType *pDerivTypeSum = static_cast<DerivType*>(pSum); [4]
return *pDerivTypeSum;
}
Эта функция работает надлежащим образом. Но мой учитель сказал, что это не хороший код, потому что даже код работает в этом случае, он по-прежнему зависит от реализации и зависит от архитектуры. (Он дает мне ссылку: http://www.informit.com/guides/content.aspx?g=cplusplus&seqNum=195[ ^])
Помогите мне улучшить этот код, а именно [1], [2], [3], [4].
Моя идея в том, как конвертировать из DerivType в double/int и наоборот.
Благодарим за чтение и помощь.
Я очень appriciate о ваших намеках.
искренне Ваш
Большое спасибо уважением,
Что следует преобразовывать из 'DeriveType' в значение' int'? Вероятно, вы должны написать оператор преобразования. – TartanLlama