我在一个C++项目中使用第三方静态库(.lib文件)。静态库的作者为我添加了一个类的方法并向我发送了更新后的库。
不幸的是,他没有发送新的头文件,与他的沟通也很缓慢,所以我可能无法很快得到新的头文件。我知道新方法的签名,因此我可以将其添加到头文件中。
我的问题是,我将新声明添加到公共方法列表中的位置是否重要(顶部、底部、中间...)。我最好的猜测是它确实很重要,并且头文件中的顺序决定了编译后类的顺序。有人能够确认或否认这一点吗?
我在一个C++项目中使用第三方静态库(.lib文件)。静态库的作者为我添加了一个类的方法并向我发送了更新后的库。
不幸的是,他没有发送新的头文件,与他的沟通也很缓慢,所以我可能无法很快得到新的头文件。我知道新方法的签名,因此我可以将其添加到头文件中。
我的问题是,我将新声明添加到公共方法列表中的位置是否重要(顶部、底部、中间...)。我最好的猜测是它确实很重要,并且头文件中的顺序决定了编译后类的顺序。有人能够确认或否认这一点吗?
virtual
的问题,但它似乎是一个非常真实的风险。上面链接的重复内容提到了它,而 KDE 的链接似乎从 ABI 视角深入讨论了其影响。 - underscore_dstruct A
{
B f();
struct B {};
//...
};
struct B
的结构体,在结构体本身的声明之前。void something(CString)
(MFC字符串类),并且不使用头文件中定义的任何类型。因此,我担心将方法声明放在类定义的“错误”位置是否会导致调用错误的方法。但我忘记了链接器。我最熟悉的是C#,在那里这种问题不会出现。 - adv12类中的方法声明对编译器来说并不重要,除非它依赖于尚未完成的变量声明。