愚蠢的错误:关于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构造函数不允许返回一个类型.
构造函数是没有返回值类型的....

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值