gpt4 book ai didi

c++ - 声明的方法,但从未在 Geant4 源代码中定义

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:34:58 26 4
gpt4 key购买 nike

在我搜索 Geant4 源代码的过程中,我多次注意到在 header 中声明了一些方法,但从未用任何相关代码定义(请原谅我的行话中的任何虚假(我是一名工程师)) .

一个例子是定义如下的方法:

G4TrackVector* GetfSecondary();

在头文件或源文件中没有实现,不是虚拟的,但它在各种场合被程序使用,并且程序从此编译代码运行。起初我以为这只是一些很酷的 doxygen 代码隐藏技巧,但我现在发现它不是!这在代码中很常见。

谁能解释一下这是怎么回事?

谢谢

最佳答案

GetSecondary()函数是 G4Step 类(在 G4Step.hh 中定义)的成员,并在 G4Step.icc 中内联实现。 G4Step.icc 包含在 G4Step.hh 的末尾。

我猜您是在源目录而不是 include 目录中查找实现,但 include 目录是内联实现的正确位置。

将来如果你在 *nix 上,你可以试试 grep -r <FunctionName> .从项目目录的顶部找到函数的所有提及,其中应包括实现。

关于c++ - 声明的方法,但从未在 Geant4 源代码中定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6244084/

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