使用__declspec(dllexport)
时,是否应该为重载的运算符也分配此导出标志?例如,假设您有以下内容:
/*
Overloaded operator (equivalent operator) returns true if x equals compared vector
*/
__declspec(dllexport) bool operator ==(const vector &v)
{
return (x == v.x && y==v.y && z==v.z);
}
为了在您的类类型上使用
__declspec(dllexport)
,是否需要==
?还是不应该将其导出,因为它特定于该类和任何继承的类? 最佳答案
通常,您将__declspec(dllexport)应用于类声明,以便整个shebang都被导出。还导出v表,如果类具有虚拟成员,则该表很重要。一次只做一个成员是一件很累又麻烦的事情。
不知道为什么您会跳过超载。如果您在类中将其公开,那么您当然也应该从DLL中公开它。如果您不这样做,那么某天将很难诊断链接器错误。