VC++6 错误 C2059:语法错误:'常量'
Posted
技术标签:
【中文标题】VC++6 错误 C2059:语法错误:\'常量\'【英文标题】:VC++6 error C2059: syntax error : 'constant'VC++6 错误 C2059:语法错误:'常量' 【发布时间】:2010-12-23 13:12:32 【问题描述】:使用 MSVC++ 6.0 制作了这个简单的类
class Strg
public:
Strg(int max);
private:
int _max;
;
Strg::Strg(int max)
_max=max;
如果我用它听起来不错:
main()
Strg mvar(10);
但是现在如果我在另一个类中使用它:
class ok
public:
Strg v(45);
;
我收到消息错误: 错误 C2059:语法错误:'常量'
你能告诉我更多吗?
【问题讨论】:
-1 你的确切问题的答案很容易用谷歌搜索出来:cboard.cprogramming.com/cplusplus-programming/… 我也会升级你的编译器,VC6 是一个遗物...... 【参考方案1】:应该是:
class ok
public:
Strg v;
ok() : v(45)
;
没有默认构造函数的非静态成员变量(在本例中为 v)应使用 initialization lists 进行初始化。另一方面,在函数(如 main)中,您可以使用常规构造函数语法。
【讨论】:
【参考方案2】:编译器抱怨的是你试图提供关于如何在你的类定义中实例化类成员 v
的指令,这是不允许的。
实例化v
的位置将在构造函数内部,或者在构造函数的初始值设定项列表中。例如:
内部构造函数:
class ok
public:
Strg v;
ok()
v = Strg(45);
;
在初始化列表中:
class ok
public:
Strg v;
ok() : v(45)
;
正确的做法是最后一种(否则,v
还需要一个默认构造函数,并且会被初始化两次)。
【讨论】:
以上是关于VC++6 错误 C2059:语法错误:'常量'的主要内容,如果未能解决你的问题,请参考以下文章
错误 C2059:尝试在已知大小的头文件中创建 Qt 容器时出现“常量”
变量中的点? VC9 在构建 beecrypt 时出现解析错误
vs2012 MinGW编译ffmpeg 出现libavdevice/avdevice.c(38) : error C2059: 语法错误:“.”
C语言错误 error C2059: 语法错误:“)”以及 错误error C2065: “sockaddr”: 未声明的标识符