愚蠢的错误:关于C2533错误

简介:
今天写了一个类,头文件声明如下:
None.gif class CConfigManager
ExpandedBlockStart.gif {
InBlock.gif
InBlock.gifpublic:
InBlock.gif    CConfigManager(void);
InBlock.gif    ~CConfigManager(void);
ExpandedBlockEnd.gif}
结果编译器给我报错:

error C2533: CConfigManager::CConfigManager' : constructors not allowed a return type

我查了下MSDN,MSDN上面说:
编译器错误 C2533  
 
 语言筛选器: 全部 语言筛选器: 多个 语言筛选器: Visual Basic 语言筛选器: C# 语言筛选器: C++ 语言筛选器: J# 语言筛选器: JScript  
 Visual Basic(声明) 
 Visual Basic(用法) 
 C# 
 C++ 
 J# 
 JScript

错误消息 
“identifier”: 构造函数不允许返回类型


构造函数不能有返回类型(甚至不能有 void 返回类型)。

下面的示例生成 C2533:

// C2533.cpp
// compile with: /c
class X {
public:
   X();   
};

int X::X() {}   // C2533
X::X(){}   // OK

我当时没有弄明白.实质上编译器的角度来看这是正确的.
当头文件被include以后,也就和cpp文件合成一个文件了,
这个时候就是这种情况了:

None.gif class CConfigManager 
ExpandedBlockStart.gif
InBlock.gifpublic
InBlock.gifCConfigManager(void); 
InBlock.gif~CConfigManager(void); 
ExpandedBlockEnd.gif}
 
None.gif
None.gifCConfigManager::CConfigManager() 
ExpandedBlockStart.gif {
ExpandedBlockEnd.gif}

None.gif
None.gif dot.gif 

这个时候,实际上就像这样了:

ExpandedBlockStart.gif class CConfigManager {} CConfigManager::CConfigManager()
ExpandedBlockStart.gif {}
None.gif

 

也就是说我这个时候定义了一个类型,并且它是构造函数的返回值类型.编译器告诉我说:

constructors not allowed a return type构造函数不允许返回一个类型.
构造函数是没有返回值类型的....

只是我当时粗心大意,和理解的问题造成这个日志的.
现在特别修改了它,希望其他碰到此类问题的朋友有一些深刻的意义.
我有什么不对之处,也请各位不吝赐教,批评指正.

目录
相关文章
|
3月前
|
安全 测试技术
技术债是我们的错吗?
技术债是我们的错吗?
|
缓存 前端开发 中间件
服务器开发-纠正之前的错误
服务器开发-纠正之前的错误
65 0
|
存储 Java
一个极易被忽略的内存泄漏情况,看看你会不会犯一样的错
Java之所以能够成为世界上最受欢迎的语言,与其垃圾回收机制分不开。我们Javaer能够在创建完对象后就不用管她的生死,确实是十分方便(真特么是个渣男)。可是有时候因为你创建了她,又对她爱答不理,就很有可能出大问题。
|
数据可视化
7个新手数据讲述者犯下的致命错误,你都知道吗?
  本文约1800字,建议阅读5分钟。   本文介绍了新手数据讲师所犯的最常见的错误,以及如何改正它们。   在制作数据故事时,很容易迷失在细节中,并且无法创造出可以激发别人动手操作的数据故事。下面是新手数据讲师所犯的最常见的错误,以及如何改正它们。这些技巧来自“像数据讲述者一样思考”研究会。   1. 数据故事不适合听众   不是所有的听众都是相同的,不是所有的听众都有一样的目标。即使您自己审视自己团队内部,也可以考虑一个技术支持专家和一个运营主管如何具有不同的观点。尽管两者都有共同的目标即服务客户,但每个人对于这个目标能够实现的方法和原因具有不同的观点。   许多展示数据故事的讲
116 0
|
Java Spring
遇到 400、500 错误千万不要慌!
很多人都会在平时开发过程中遇到400或500异常,并且也没有走到服务端controller中,就变得有些不知所措。 我们知道SpringMVC从DispatchServlet开始接收与分发请求,从入口开始debug,还能找不到问题所在么? 从DispatchServlet的doDispatch()方法开始处理请求:
317 0
|
存储 缓存 Java
使用 @Transactional 时常犯的N种错误
使用 @Transactional 时常犯的N种错误
125 0
|
Python 索引
初学Python常见异常错误,总有一处你会遇到!
初学Python常见错误 忘记写冒号 误用= 错误 缩紧 变量没有定义 中英文输入法导致的错误 不同数据类型的拼接 索引位置问题 使用字典中不存在的键 忘了括号 漏传参数 缺失依赖库 使用了python中对关键词 编码问题 1.
1549 0
|
程序员
|
NoSQL 测试技术 程序员
关于代码的那些低级错误,都是血泪的教训
无论你是初级工程师,中级工程师,高级工程师,甚至是全栈工程师、架构师,都是从零开使一步一步走出来的,想必都会犯过一些低级错误。 那些错误都是怎么发生的,如何避免发生错误呢,看看我们各位资深的程序员以自身为例,告诫我们敬畏每一段代码
5397 0