包含了头文件却还是出现:undeclared identifier错误

tianfu1 2009-05-26 09:58:55
我写了一个Square类包含在Square.h头文件中,
在test.cpp中包含后,使用Square类却报错了,很费解,在vc++和Borland中都试过了
错误信息:error C2065: 'Square' : undeclared identifier

代码如下:

///-----------------------------test.cpp
#include<iostream>
#include"Square.h"

using namespace std;

int main()
{
int n;
cout<<"请输入魔方阵的维数:";
cin>>n;
Square s(n);////------------------------------这里出错了
s.magic();
s.print();

}

//////------------------------------Square.h
#ifdef SQUARE_H
#define SQUARE_H

#include<iostream>
using namespace std;

class Square
{
private:
int size;///维数
int **square;///二维数组
public:
Square(int n)
{
size = n;
/////创建动态二维数组
square = new int*[size];
for (int i=0; i<size; ++i)
square[i] = new int[size];
////为数组赋初值
for (int a=0; a<size; ++a)
for (int b=0; b<size; ++b)
square[a][b] = 0;
}

///
///析构
///
~Square()
{
for (int i=0; i<size; ++i)
delete[] square[i];
delete[] square;
}

void magic()
{
if (size%2==1)
oddMagic();
}

///
///奇数魔方阵
///
void oddMagic()
{
int num = size*size;///魔方元素个数
int x = 0;///行数
int y = size/2;///列数

///将1放到方阵中
a[0][y] = 1;
///进行num-1次循环填充方阵
for (int i=2; i<=num; ++i)
{
if ((i-1)%size==0) ++x;
else
{
x = (x-1+size)%size;
y = (y+1)%size;
}
square[x][y] = i;
}
}

///
///打印魔方阵
///
void print()
{
for (int i=0; i<size; i++)
{
for (int j=0; j<size; ++j)
cout<<square[i][j]<<'\t';
cout<<endl;
}
}
};

#endif
...全文
520 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
mengde007 2009-05-26
  • 打赏
  • 举报
回复
楼主自己搞定了?接分;
liliangbao 2009-05-26
  • 打赏
  • 举报
回复
#ifdef SQUARE_H
修改为
#ifndef SQUARE_H
tianfu1 2009-05-26
  • 打赏
  • 举报
回复
不好意思发帖子后发现错误了,
#ifdef SQUARE_H
应该为#ifndef SQUARE_H

65,211

社区成员

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

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