一个巨简单的问题

skink 2004-04-29 11:28:23
我写了一个类,大致如下:
class IDrawContour
{
public:
IDrawContour(CList<ContourVal,ContourVal> pList,CString sFileName,ExportType iEType);
...
}


//其他都没有问题. 编译的时候出现如下错误:
// error C2629 unexpected 'class IDrawcontour'
error C2238 unexpected token(s) preceding ';'
error C2511 'IDrawContour::IDrawContour' : overloaded member function void IDrawContour(CList<ContourVal,ContourVal> pList,CString sFileName,ExportType iEType) not found in 'IDrawContour'
...全文
40 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
weaest 2004-04-30
  • 打赏
  • 举报
回复
类定义少了;
pomelowu 2004-04-30
  • 打赏
  • 举报
回复
类和其成员函数的编译器不能识别

可能是有非法字符导致的,你句末的分号是不是中文标点的“;”?
还有可能有全角的空格
还是不行的话,clear一下,在编译
figer 2004-04-30
  • 打赏
  • 举报
回复
看看你cpp中函数定义处是否合法
luolovegui 2004-04-30
  • 打赏
  • 举报
回复
都知道啊
countryboy 2004-04-30
  • 打赏
  • 举报
回复
晕~~!!!!
类是这样的
class C******
{

.......

};
分号一定要记得啊~~!!!!
wangzi163 2004-04-30
  • 打赏
  • 举报
回复
少;
crystall 2004-04-30
  • 打赏
  • 举报
回复
你的class声明后面没有;结束编译器当然不认了
subtop 2004-04-30
  • 打赏
  • 举报
回复
肯定是类定义最后一个}后面少了;
:)
showjancn 2004-04-30
  • 打赏
  • 举报
回复
如果这样报错的话,前面出错的可能性大!!
当然类定义完后要加分号。
pomelowu 2004-04-30
  • 打赏
  • 举报
回复
而且有可能是前面定义的class后面少了分号
errorhandle 2004-04-30
  • 打赏
  • 举报
回复
少了分号
skink 2004-04-30
  • 打赏
  • 举报
回复
问题解决,方案贴出,:)
enum ExportType{
ExportGrid = 0,
ExportShapeLine = 1,
ExportShapePolygon = 2,
};
这个枚举类型放到
IDrawContour( CList<ContourVal,ContourVal> pList,CString sFileName,ExportType iEptType);后面就搞定了。

Kivic 2004-04-30
  • 打赏
  • 举报
回复
enum ExportType放到前面
qclore 2004-04-30
  • 打赏
  • 举报
回复
我觉得可能是编译器不能识别 CList、CString或ExportType,应该添加相应的头文件。
skink 2004-04-30
  • 打赏
  • 举报
回复
我把IDrawContour( CList<ContourVal,ContourVal> pList,CString sFileName,ExportType iEptType);声明和对应的函数体去掉了,就编译通过
难道是这个函数写的有问题么
skink 2004-04-30
  • 打赏
  • 举报
回复
class IDrawContour
{
public:
//IDrawContour();
IDrawContour( CList<ContourVal,ContourVal> pList,CString sFileName,ExportType iEptType);
virtual ~IDrawContour();
private:
void Export2Grid(CString sFileName,double xMin,double xMax,double yMin,double yMax,double zMin,double zMax,SurfaceGrid Result);
void Export2ShapeL(CString sShpFileName);
void Export2ShapeP(CString sShpFileName);
public:
void SetGridSize(double dX,double dY);

private:
//SurfaceGrid m_SurfaceGrid;
//ScatData m_ScatterPoints;
enum ExportType{
ExportGrid = 0,
ExportShapeLine = 1,
ExportShapePolygon = 2,
};
};
把类贴出来看看吧,少了什么。问题还在,一样,没有少分号!
LuWei103 2004-04-30
  • 打赏
  • 举报
回复
外的“token (”

语法错误使该语句不明确。

意外的标记位于“token”之前

发现不正确的标记。

下面的示例生成 C2238:

// C2238.cpp
class v
{
virtual:
int vvv; // C2238
};

int main()
{
}
hab1980 2004-04-30
  • 打赏
  • 举报
回复
是不是
class IDrawContour
{
public:
IDrawContour(CList<ContourVal,ContourVal> pList,CString sFileName,ExportType iEType);
...
}
之后少了一个分号?
类的定义是这样的:
class ClassName
{
}; // 这里的分号不能少的
PiggyXP 2004-04-30
  • 打赏
  • 举报
回复
应该是楼主定义的类的前后附近有什么非法字符造成的,并不是楼主类的定义有问题
楼主仔细检查一下
goldpony 2004-04-30
  • 打赏
  • 举报
回复
晕~~少了;

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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