CVector和CMatrix重定义错误???

gousheng12345 2007-06-05 12:09:20
/*
***********************************************

本程序来源于 黄振侃 数值计算-微分方程数值解 北京工业大学出版社 2006年10月

***********************************************
*/
//向量类(CVector)与矩阵类(CMatirx)的声明与实况适两个基础类,后面的很多算法 都用到了这两个类。
//Matrix.h:向量类的声明
#define NULL 0
#define DEFAULT_NUM 5
#define EPSILON 1e-6
#include<math.h>
//n的阶乘,为避免溢出返回值用double型
double Factorial(int n);
//c(m,n)的组合数,为避免溢出返回值用double型
double Combination (int m,int n);
//求x的n次方,当x=0时,无论n为什么值,返回值都是0
double Mypower(double x,int n);

//向量(数组)类,下标从0开始
class CVector
{
public:
CVetcot(int size=DEFAULT_NUM);//构造函数
Cvector(CVector& v);//拷贝构造函数
virtual ~CVector();//析构函数
public:
double &operator[](int index);//重载[]运算符
CVector& operator=(CVector &v);//重载=运算符
void Resize(int new_size);//重新定义向量元素个数
void Print();//打印向量
int GetSize(){return m_nSize;}//取得数组的长度和缓冲区地址
double *GetData(){return m_pdData;}
private:
double* m_pdData;//指向向量使用的内存缓冲区
int m_nSize;//元素个数
double m_nDummy;//下标出界时,返回的元素
};



//矩阵类,下标从0开始矩阵
class CMatrix
{
public:
CMatrix(int rows=DEFAULT_NUM,int cols=DEFAULT_NUM);//构造函数,应有缺省值
CMatrix(CMatrix &m);//拷贝构造函数
virtual ~CMatrix();//析构函数
public:
CVector &operator[] (int inedex);//重载[]运算符
CMatrix &operator = (CMatrix& m);//重载=运算符
void Resize(int new_rows,int new_cols);//改变矩阵的大小
void Print();// 打印矩阵
CMatrix GetNagtiveMatrix();//得到逆矩阵
//
int GetRow(){return m_nRows;}
int GetCol(){return m_nCols;}
//
friend CMatrix operator* (CMatrix& a,CMatrix& b);//重载矩阵乘法运算
private:
CVector* m_paryData;//矩阵行向量的指针数组
int m_nRows,m_nCols;//矩阵的行数,列数
void SetData(CMatrix& m);//复制已知矩阵到自身
};


错误如下:
Compiling...
Euler.cpp
c:\matrix.h(23) : error C2011: 'CVector' : 'class' type redefinition
c:\matrix.h(45) : error C2011: 'CMatrix' : 'class' type redefinition
...全文
255 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
leibniz_zsu 2007-06-05
  • 打赏
  • 举报
回复
这种错误可能是由于头文件被多次include
可以在matrix.h文件中以下代码:
#ifndef MATRIX_H
#define MATRIX_H

.....这里加上matrix.h文件原来的内容

#endif
内容概要:本文档是关于“基于小信号扫频辨识的光伏并网逆变器正负序交互稳定性分析”的博士论文复现资源,配套提供Matlab代码与Simulink仿真实现。内容聚焦于弱电网条件下光伏并网逆变器的稳定性问题,深入研究其正负序阻抗建模方法、小信号扫频辨识技术及正负序交互失稳机理。通过构建高精度的系统仿真模型,采用扫频法提取逆变器在不同控制环路(如锁相环、电流环)影响下的序阻抗特性,并结合奈奎斯特稳定性判据评估其与电网阻抗之间的交互作用,系统性地揭示了宽频带振荡的产生机制。该资源完整还原了论文中的关键理论推导与仿真验证流程,适用于从事新能源并网、电力电子系统建模与稳定性分析的研究人员进行学习、复现与二次开发。; 适合人群:具备电力系统、电力电子与自动控制理论基础,熟练掌握Matlab/Simulink仿真工具,从事新能源发电并网、逆变器控制策略或电力系统稳定性研究的研究生、科研人员及工程技术人员。; 使用场景及目标:① 复现并验证博士论文中提出的光伏逆变器正负序阻抗建模与小信号扫频分析方法;② 深入理解弱电网环境下由正负序耦合引发的交互失稳现象及其物理机理;③ 掌握基于阻抗法的并网系统稳定性分析流程,为虚拟同步机、构网型控制等先进控制策略的稳定性研究提供技术参考与仿真支撑。; 阅读建议:建议学习者结合提供的代码与仿真模型,首先深入理解序阻抗建模与扫频辨识的基本原理,然后逐步调试仿真程序,点关注锁相环动态、电流控制器参数对序阻抗曲线的影响,最终掌握从模型搭建、扫频测试到稳定性判据应用的全流程分析能力。

65,211

社区成员

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

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