所以最近我恢复了一个C++的源文件,因为我是初学者,我需要一些帮助:
//______________________________________________________________________
class ORBITDYN_API CMsise00
{
public:
struct nrlmsise_input input;
struct nrlmsise_flags flags;
struct nrlmsise_output output;
public:
CMsise00(void);
~CMsise00(void);
//¼ÆËã´óÆøÃܶÈ
double Density(const CDateTime& t,const Vector& ECFr);
};
ORBITDYN_VAR CMsise00 Msise;
//___________________________________________________________________________
Run Code Online (Sandbox Code Playgroud)
CMsise00类声明中第三个单词的含义是什么?
对于结构的声明同样的问题input,flags,output
最后一句话的含义是什么, (ORBITDYN_VAR CMsise00 Msise;)它是另一种功能的召唤或者是什么?
该ORBITDYN_API是最有可能的,要么扩展到没有或一些编译器特定的属性,可能是动态链接宏(__declspec(dllexport)也许?)
因此,您的代码应该被理解为:
class CMsise00
{
...
};
Run Code Online (Sandbox Code Playgroud)
现在很明显,这CMsise00是班级的名称.
和ditto一样ORBITDYN_VAR.
在Windows中编写DLL时,这些类是惯用的.问题是导出的函数,类或变量应该__declspec(dllexport)在编译DLL时声明,但是__declspec(dllimport)当链接到它时.一些预处理器魔术允许您在两种情况下使用相同的头文件.
啊! 我几乎忘记了结构的东西:
struct nrlmsise_input input;
Run Code Online (Sandbox Code Playgroud)
这只是一个名为inputtype 的变量struct nrlmsise.你可以写:
nrlmsise_input input;
Run Code Online (Sandbox Code Playgroud)
它会是一样的.前者在C++中被接受以与C兼容.在C中,您始终使用带有关键字的结构名称struct.
| 归档时间: |
|
| 查看次数: |
64 次 |
| 最近记录: |