原创 error C2678: binary '!=' : no operator defined

2010-11-9 16:57 6571 7 5 分类: 软件与OS

    今天,程序有了一点动静了。


    我把自己在原来的模板类里面添加的成员函数都挨个的测试了一遍,可以顺利运行了。先不说时间开销和存储空间的开销有多优化,至少,在功能上,可以按我的构想运行了。


    有几点让我感触比较深。在写大型程序的时候,模块化很关键。在实现函数的时候,一定要写一个,测试一个,测试成功了再加入到大的程序块中,再便一整个大的程序快,直到成功。要不然,很多函数一起一起测试很难找到确切的错误在哪里。


    就那天还遇到一个问题,就是我要定义一模板类class matrix< _Ty>{...}中的一个成员函数void Reshape(CPtrArray & reshape_result,size_t I,size_t J,size_t K)


其中size_t是unsigned int的宏定义。要用到CPtrArray类,我就包含了#include<afxcoll.h> 这个头文件。但是编译时报错:


error C2678: binary '!=' : no operator defined which takes a left-hand operand of type 'const class std::valarray<double>' (or there is no acceptable conversion)


在实际的程序中,重载运算符“!=”我已经定义了。


当注释掉这句时,编译通过了,而且还运行出了正确的结果,


我现在也不知道是什么原因,请各位高手指点迷津。


      还有上次遇到一个问题,就是如何将VC生成的.exe文件脱离VC环境运行?我在网上搜了一些资料,但是似乎那些对基于DOS的输出界面不起作用。


    补充一句,我的程序不是基于MFC的。


 

文章评论0条评论)

登录后参与讨论
我要评论
0
7
关闭 站长推荐上一条 /2 下一条