给出以下C ++ / CLI程序:
#pragma managed(push, off)
class FooBar
{
FooBar(const FooBar& that) { *this = that; }
const FooBar& operator =(const FooBar& that);
};
#pragma managed(pop)
int main()
{
return 0;
}
给出以下链接器输出:
严重性代码描述项目文件行抑制状态 错误LNK2019无法解析的外部符号“私有:类FooBar const&__thiscall FooBar :: operator =(class FooBar const&)”(?? 4FooBar @@ AAEABV0 @ ABV0 @@ Z)在函数“私有:__thiscall FooBar :: FooBar( class FooBar const&)“(?? 0FooBar @@ AAE @ ABV0 @@ Z)ConsoleApplication1 C:\ Users \ SomeUser \ Documents \ Visual Studio 2019 \ Projects \ ConsoleApplication1 \ ConsoleApplication1 \ ConsoleApplication1 \ ConsoleApplication1.obj 1
但是以下C ++程序没有:
class FooBar
{
FooBar(const FooBar& that) { *this = that; }
const FooBar& operator =(const FooBar& that);
};
int main()
{
return 0;
}
之所以需要此功能,是因为我包含了一个头文件,该文件超出了我的控制范围。尽管我永远不需要使用复制构造函数或赋值运算符。
使用v142平台工具集编译。