将参数传递给 c++ 构造函数时出现 VS 编译错误
VS compiling error when passing arguments to c++ constructor
我正在尝试将两个参数传递给构造函数:
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"的构造函数。
谢谢!
默认成员初始值设定项仅适用于大括号或等于初始值设定项。
例如class CTest2
{
public:
CTest1 test1 = CTest1(BITMAP_1_ID, BITMAP_2_ID);
CTest1 test2 {BITMAP_1_ID, BITMAP_2_ID};
};
或者,您可以使用成员初始值设定项列表。
class CTest2
{
public:
CTest2() : test1(BITMAP_1_ID, BITMAP_2_ID) {}
CTest1 test1;
};
相关文章:
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 在VS Code中编译C / C ++时如何禁用自动创建EXE文件?
- 为什么我的 GetProcessID 函数不在 VS 中编译?
- VS Express 无法正确编译代码(?
- VS-2019 的编译错误
- 从 VS Code 编译并运行 c++(macOS)
- C++ VS 更改项目目录后需要重新编译
- 将参数传递给 c++ 构造函数时出现 VS 编译错误
- variadic模板代码中的GCC VS MSVC编译误差
- 使用 Cmake 编译 LZO 时,它注意到找不到任何 VS 实例
- VS总是在寻找预编译的标题
- 设置 VS 代码以编译C++程序
- 自定义分配器仅在VS 2015中的发布模式下编译
- 如何在VS 2017中编译来自其他编译器的代码
- VS 代码显示编译 clang 的错误消息
- readelf 实用程序用于 Visual Studio C++ ABI 和 VS 编译的对象
- 将 VS C++编译更改为 vc 11 到 vc12
- 二进制运算转换-G++不编译,但VS编译
- c++中的正向声明VS编译顺序错误,以避免包含递归标头
- 构建失败vs编译失败