gpt4 book ai didi

c++ - 与 __declspec(dllexport) 一起使用时,Struct 无法采用构造函数

转载 作者:行者123 更新时间:2023-11-30 00:59:17 24 4
gpt4 key购买 nike

我尝试为 C++ struct 定义构造函数,巧的是,这也是我要导出的结构。所以这是我的代码:

extern "C"__declspec(dllexport) typedef struct
{
double x;
double y;

PointCg(double xx, double yy);
}PointCg;

但是,我得到了一个编译错误,说明了这一点

error C4430: missing type specifier- int assumed. Note: C++ does not support default-int

但我认为这是一个完全有效的声明?

我正在使用 visual-c++ 2008,如果它对你很重要的话。

最佳答案

__declspec 与它没有任何关系。您正在定义一个匿名结构。 typedef 名称不适用于定义构造函数。在定义中,PointCg 只是看起来像一个函数名,函数必须有一个返回类型。这是在 C++ 中定义结构的方式:

struct PointCg{
//....
PointGc(double xx, double yy);
};

与 C 不同,您不需要 typedef 结构名称以避免在任何地方键入 struct,并且可以只使用 PointCg 而不是 struct PointCg 当提到该类型时。

关于c++ - 与 __declspec(dllexport) 一起使用时,Struct 无法采用构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4659226/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com