【问题标题】:How do I find the definition of an overloaded operator?如何找到重载运算符的定义?
【发布时间】:2018-04-15 10:17:07
【问题描述】:

我试图了解大型开源库的某些部分是如何工作的,但我无法找到重载运算符的定义。在运算符上使用Go To Definition 只会将我带到文件顶部的typedef

有没有办法找到 VS 或其他工具中的重载运算符实际使用的代码,还是我只是在类层次结构中搜索?

【问题讨论】:

  • VS IntelliSense 可能需要一些时间来建立源文件的索引。但听起来您正在查找类型而不是运算符。

标签: c++ visual-studio operator-overloading


【解决方案1】:

如果这个操作符被重载,那么 VS 会用不同的颜色高亮它。您需要精确点击算子主体,然后选择Go To Definition。或将光标设置在操作员名称上(例如,就在+ 之前)并按 F12。如果运算符是内置的(例如 int + int),则跳转到定义将显示“运算符未重载”弹出窗口。请注意,上述行为对 VS 2017 有效,在早期版本的 VS 中,对重载运算符解析的支持受到更多限制。

【讨论】:

  • 我正在使用 VS Community 2017。将光标放在运算符之前(在本例中为 *)并按 F12 仍会将我带到 typedef。左右两边是继承自同一个基类的不同类。该库大量使用模板类,这可能会被抛弃吗?
  • @MalikDrako 如果运算符是模板主体的一部分,那么推断真正的运算符位置不是很现实。然而,操作员在正常功能内,那么它应该被定位。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-17
  • 2013-08-15
相关资源
最近更新 更多