c++程序有个错误求帮忙看下

yitian_ljt 2012-04-20 03:43:27
Math.h


class CMath
{
public:
//constructor
CMath()
{
m_ulBufLen = 0;
m_pBuffer = NULL;
}
~CMath()
{
ReleaseBuffer();
}

public:

static bool MinMax(type_val* pvSrc, type_len nLen, type_val* pvMin, type_val* pvMax)
{
if (pvSrc == NULL || nLen < 1)
return false;

if (pvMin == NULL && pvMax == NULL)
return false;

type_val vMin, vMax;
type_val* pvSrcTemp = pvSrc;
vMin = vMax = *pvSrcTemp;
for (register unsigned long i = 0; i < nLen; i++, pvSrcTemp++)
{
vMin = vMin>*pvSrcTemp ? *pvSrcTemp : vMin;
vMax = vMax<*pvSrcTemp ? *pvSrcTemp : vMax;
}
*pvMin = vMin;
*pvMax = vMax;

return true;
}






#include"Math.h"
class CImageBase : public CImageFile
{
public:
//constructor
CImageBase();
~CImageBase();
template<class type_val, class type_len, class type_result>
static bool Histogram(type_val* pData, type_len nLen, type_result* pHist, int nHistLen, bool bNormalized=true) //normalized to [0,1]
{
if (pData == NULL || pHist == NULL || nLen <= 0 || nHistLen <= 0)
{
//throw "parameter invalid";
return false;
}

class CMath;
type_val vMin = 0;
type_val vMax = 1;
if (!bNormalized)
{
CMath::MinMax(pData, nLen, &vMin, &vMax);
}.......
}
...全文
118 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yitian_ljt 2012-04-23
  • 打赏
  • 举报
回复
提示错误时
expected primary-expression before ‘>’ token
yitian_ljt 2012-04-23
  • 打赏
  • 举报
回复
求解答
yitian_ljt 2012-04-23
  • 打赏
  • 举报
回复
3L的方法貌似不行呀 这个在vc下编译过了 但是在linux下 编译就出现这个错误了
ghlhy0505 2012-04-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
下面这个函数中,在局部作用域中声明全局的CMath是错误的,会让编译器误认为这是当前作用域的class。
所以正确做法是,把这个放在CImageBase 类外面。

C/C++ code

template<class type_val, class type_len, class type_result>
static bool Histogram(type_val* pDa……
[/Quote]
+1
evencoming 2012-04-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
怎么没人回答 求解释
[/Quote]
见3L
yitian_ljt 2012-04-20
  • 打赏
  • 举报
回复
怎么没人回答 求解释
evencoming 2012-04-20
  • 打赏
  • 举报
回复
下面这个函数中,在局部作用域中声明全局的CMath是错误的,会让编译器误认为这是当前作用域的class。
所以正确做法是,把这个放在CImageBase 类外面。
[code=C/C++]
template<class type_val, class type_len, class type_result>
static bool Histogram(type_val* pData, type_len nLen, type_result* pHist, int nHistLen, bool bNormalized=true) //normalized to [0,1]
{
if (pData == NULL || pHist == NULL || nLen <= 0 || nHistLen <= 0)
{
//throw "parameter invalid";
return false;
}

// class CMath; //here ,deleted
type_val vMin = 0;
type_val vMax = 1;
if (!bNormalized)
{
CMath::MinMax(pData, nLen, &vMin, &vMax); }
。。。。。。。。

}

[/CODE]
yitian_ljt 2012-04-20
  • 打赏
  • 举报
回复
我明明已经包含了头文件 为什么还有错误
yitian_ljt 2012-04-20
  • 打赏
  • 举报
回复
最后一行
Function 'MinMax' could not be resolved

65,208

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧