c++ - 在c++中Ptr<> a代表什么?

标签 c++ pointers operators

我实际上正在分析一些鳕鱼,我发现了这个

 Ptr<UniformRandomVariable> m_yMinVar;

我有一些c经验,但没有c++,我的理解是,该行声明了一个指针调用m_yMinVar,它的“类型”<UniformRandomVariable>其中“UniformRandomVariable”必须是其他cpp文件中的类,但我真的不知道,

我想确切地知道 Ptr 是什么,因为我的文本编辑器将其重新识别为变量类型

还有“<>”,我不确定那是

最后,如果有人可以分享给我一个链接,我可以在其中看到运算符和不同类型的声明变量和编码类型,例如“i++ = i+= i=i+1”

再见,谢谢大家

最佳答案

Ptr<UniformRandomVariable>是类模板的实例化。类模板的实例是类。类是用户定义的类型。 Ptr<UniformRandomVariable> m_yMinVar;整体上是 Ptr<UniformRandomVariable> 类型变量的声明.

Ptr是模板的名称。鉴于名称,可以相当安全地假设它是指针的某种包装器。如果 Ptr 的第一个模板参数是一个类型参数,那么 UniformRandomVariable是某种类型的名称。它可能是一个类,也可能是一个 typedef。如果 Ptr 的第一个模板参数是非类型参数,则 UniformRandomVariable是某个常数值。

Ptr必须在同一翻译单元内定义(在实例化之前)。 UniformRandomVariable必须至少在实例化中使用的同一翻译单元中声明,并且取决于 Ptr 的定义模板,UniformRandomVariable可能还需要定义。

关于c++ - 在c++中Ptr<> a代表什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53353314/

相关文章:

c++ - Qt Creator 2.6.1 + Qt 5 + C++11 + MSVC2010 编译器

c - 使用指针访问带有数组的两个结构

c - 正确释放结构

c++ - 在没有 SO_LINGER > 0 的情况下强制关闭服务器端套接字会丢失数据,对吗?

std::find_if 中的 C++ lambda 表达式?

pointers - Go 中的非指针错误不确定是什么意思

java - “===” 等效于 Java

perl - 是否有类似引号的内插单词列表运算符?

c# - '=>' 在 C# 中有什么作用?

C++/生成文件错误 : undefined reference to `main'