问个关于下载来的Matrix代码的问题。

koutyayh 2010-08-27 06:35:14
在网上下到有一段代码,准备学习一下,可是却发现似乎有问题,类定义如下:

#if !defined(AFX_MATRIX_H__3461DABF_4919_4B31_81EA_AC9397ABBAE1__INCLUDED_)
#define AFX_MATRIX_H__3461DABF_4919_4B31_81EA_AC9397ABBAE1__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <string>

class MatrixException
{
public:
MatrixException(std::string message) throw() {}
};

template<class T>
class TMatrix
{
public:
TMatrix() throw() : m_nWidth(0), m_nHeight(0), m_arByte(NULL) {}
TMatrix(int nWidth, int nHeight) throw();
TMatrix(int nWidth, int nHeight, T* pByte) throw();
TMatrix(const TMatrix& rhs) throw();
virtual ~TMatrix();
void SetDimension(int nWidth, int nHeight) throw();
void ZeroAll() throw();
void Clean() throw();
TMatrix& operator=(const TMatrix& rhs) throw();
void operator+=(const TMatrix& rhs) throw(MatrixException);
void operator-=(const TMatrix& rhs) throw(MatrixException);
void PriorityAdd(const TMatrix& rhs) throw(MatrixException);
// inline access functions
T& operator[](int nIndex) throw(MatrixException);
T operator[](int nIndex) const throw(MatrixException);
T& operator()(int nRow, int nCol) throw(MatrixException);
T operator()(int nRow, int nCol) const throw(MatrixException);
// getter
int GetWidth() const throw() { return m_nWidth; }
int GetHeight() const throw() { return m_nHeight; }
// uitilies
T* GetRow(int nIndex) throw(MatrixException);
T* GetArray() throw();
bool IsSameDimension(const TMatrix& rhs) const throw();
void MakeSameDimension(TMatrix& output) const throw(MatrixException);
// virtual functions
virtual void Load(std::string filename) throw(MatrixException) { throw MatrixException(_T("Not Implemented")); }
virtual void Save(std::string filename) const throw(MatrixException) { throw MatrixException(_T("Not Implemented")); }
#ifdef _DEBUG
virtual void Dump(std::ostream& os) const throw();
#endif
protected:
T* m_arByte;
int m_nWidth;
int m_nHeight;
};


主文件如下:
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include "TMatrix.h"


using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
cout << "Hello World!" << endl;
system("pause");
return 0;
}

我什么都没做,仅仅是引用了这份文件,结果编译的时候有如下提示:
kriging_Variance.cpp
d:\backup\我的文档\visual studio 2005\projects\kriging_variance\kriging_variance\tmatrix.h(33) : warning C4290: 忽略 C++ 异常规范,但指示函数不是 __declspec(nothrow)
d:\backup\我的文档\visual studio 2005\projects\kriging_variance\kriging_variance\tmatrix.h(59): 参见对正在编译的类 模板 实例化“TMatrix<T>”的引用
d:\backup\我的文档\visual studio 2005\projects\kriging_variance\kriging_variance\tmatrix.h(34) : warning C4290: 忽略 C++ 异常规范,但指示函数不是 __declspec(nothrow)
d:\backup\我的文档\visual studio 2005\projects\kriging_variance\kriging_variance\tmatrix.h(35) : warning C4290: 忽略 C++ 异常规范,但指示函数不是 __declspec(nothrow)
d:\backup\我的文档\visual studio 2005\projects\kriging_variance\kriging_variance\tmatrix.h(37) : warning C4290: 忽略 C++ 异常规范,但指示函数不是 __declspec(nothrow)
d:\backup\我的文档\visual studio 2005\projects\kriging_variance\kriging_variance\tmatrix.h(38) : warning C4290: 忽略 C++ 异常规范,但指示函数不是 __declspec(nothrow)
d:\backup\我的文档\visual studio 2005\projects\kriging_variance\kriging_variance\tmatrix.h(39) : warning C4290: 忽略 C++ 异常规范,但指示函数不是 __declspec(nothrow)
d:\backup\我的文档\visual studio 2005\projects\kriging_variance\kriging_variance\tmatrix.h(40) : warning C4290: 忽略 C++ 异常规范,但指示函数不是 __declspec(nothrow)
d:\backup\我的文档\visual studio 2005\projects\kriging_variance\kriging_variance\tmatrix.h(45) : warning C4290: 忽略 C++ 异常规范,但指示函数不是 __declspec(nothrow)
d:\backup\我的文档\visual studio 2005\projects\kriging_variance\kriging_variance\tmatrix.h(48) : warning C4290: 忽略 C++ 异常规范,但指示函数不是 __declspec(nothrow)
d:\backup\我的文档\visual studio 2005\projects\kriging_variance\kriging_variance\tmatrix.h(50) : warning C4290: 忽略 C++ 异常规范,但指示函数不是 __declspec(nothrow)
d:\backup\我的文档\visual studio 2005\projects\kriging_variance\kriging_variance\tmatrix.h(51) : warning C4290: 忽略 C++ 异常规范,但指示函数不是 __declspec(nothrow)
d:\backup\我的文档\visual studio 2005\projects\kriging_variance\kriging_variance\tmatrix.h(62) : warning C4290: 忽略 C++ 异常规范,但指示函数不是 __declspec(nothrow)
d:\backup\我的文档\visual studio 2005\projects\kriging_variance\kriging_variance\tmatrix.h(75) : warning C4290: 忽略 C++ 异常规范,但指示函数不是 __declspec(nothrow)
d:\backup\我的文档\visual studio 2005\projects\kriging_variance\kriging_variance\tmatrix.h(85) : warning C4290: 忽略 C++ 异常规范,但指示函数不是 __declspec(nothrow)
d:\backup\我的文档\visual studio 2005\projects\kriging_variance\kriging_variance\tmatrix.h(98) : warning C4290: 忽略 C++ 异常规范,但指示函数不是 __declspec(nothrow)
d:\backup\我的文档\visual studio 2005\projects\kriging_variance\kriging_variance\tmatrix.h(192) : warning C4290: 忽略 C++ 异常规范,但指示函数不是 __declspec(nothrow)
d:\backup\我的文档\visual studio 2005\projects\kriging_variance\kriging_variance\tmatrix.h(206) : warning C4290: 忽略 C++ 异常规范,但指示函数不是 __declspec(nothrow)
d:\backup\我的文档\visual studio 2005\projects\kriging_variance\kriging_variance\tmatrix.h(220) : warning C4290: 忽略 C++ 异常规范,但指示函数不是 __declspec(nothrow)
d:\backup\我的文档\visual studio 2005\projects\kriging_variance\kriging_variance\tmatrix.h(231) : warning C4290: 忽略 C++ 异常规范,但指示函数不是 __declspec(nothrow)


请问这时为什么,怎样修改?
...全文
132 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
koutyayh 2010-08-27
  • 打赏
  • 举报
回复
每人发现问题出在哪里吗?
koutyayh 2010-08-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 pengzhixi 的回复:]

引用 3 楼 koutyayh 的回复:
再问个弱弱的问题:throw()干啥用?

表明该函数不会抛出异常。
[/Quote]
多谢
koutyayh 2010-08-27
  • 打赏
  • 举报
回复
代码我没有贴全,需要全部代码吗?
pengzhixi 2010-08-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 koutyayh 的回复:]
再问个弱弱的问题:throw()干啥用?
[/Quote]
表明该函数不会抛出异常。
koutyayh 2010-08-27
  • 打赏
  • 举报
回复
再问个弱弱的问题:throw()干啥用?
koutyayh 2010-08-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 maoxing63570 的回复:]

晕了,你的程序引用人家的文件,但又没在你的程序中用人家的东西,那么你还引用人家的文件做什么
[/Quote]

我是在一点一点的测试啊!
如果啥都不做都不对,那我敢用里面的东西吗!!
maoxing63570 2010-08-27
  • 打赏
  • 举报
回复
晕了,你的程序引用人家的文件,但又没在你的程序中用人家的东西,那么你还引用人家的文件做什么

64,282

社区成员

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

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