【发布时间】:2018-05-09 23:32:41
【问题描述】:
我正在尝试将两个参数传递给构造函数:
class CTest1
{
public:
CTest1(const int i8BitImageID, const int i256BitImageID) : m_i8BitImageID(i8BitImageID), m_i256BitImageID(i256BitImageID) {};
private:
int m_i8BitImageID;
int m_i256BitImageID;
};
#define BITMAP_1_ID 1
#define BITMAP_2_ID 2
class CTest2
{
public:
CTest1 test1(BITMAP_1_ID, BITMAP_2_ID); // Compile error here
};
当我编译它(使用 Visual Studio 2017)时,我声明“test1”的行会导致“C2059:语法错误:'常量'”错误。我已经尝试在构造函数的定义中使用不带“const”的元素。
谢谢!
【问题讨论】:
-
考虑向good C++ book学习。
-
很遗憾,这次编译器错误颇有误导性。
-
编译器将此视为名称
test1的函数声明,它返回CTest1并且不接受那里的常量。 Hense 错误。 @songyuanyao 已经解释了如何解决它
标签: c++ constructor