博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
愚蠢的错误:关于C2533错误
阅读量:6800 次
发布时间:2019-06-26

本文共 991 字,大约阅读时间需要 3 分钟。

今天写了一个类,头文件声明如下:

None.gif
class CConfigManager
ExpandedBlockStart.gif {
InBlock.gif
InBlock.gif
public:
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.gif
public
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构造函数不允许返回一个类型.

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

转载地址:http://qkfwl.baihongyu.com/

你可能感兴趣的文章
学习show_space存储过程
查看>>
五险一金
查看>>
一个小时学会Oracle数据库
查看>>
换芯后的 Edge 浏览器 UI 首曝光,还是熟悉的味道?
查看>>
JavaScript深入之类数组对象与arguments
查看>>
Kafka解析之失效副本
查看>>
[20150228]启动问题.txt
查看>>
一致性哈希算法
查看>>
揭秘ASM磁盘头信息
查看>>
R1-007 Shell变量简介2
查看>>
SQL优化常用方法23
查看>>
cms无法登陆
查看>>
JavaScript中事件处理
查看>>
VSTO 向office文档中插入内容
查看>>
【百度地图API】关于如何进行城市切换的三种方式
查看>>
.NET批量大数据插入性能分析及比较
查看>>
字符串基本操作以及内存函数
查看>>
How to provide highlighting with Spring data elasticsearch
查看>>
MongoDB 游标
查看>>
java多线程体系
查看>>