【发布时间】:2021-08-17 18:50:50
【问题描述】:
如果我有课
class newclass
{
int length;
int breadth;
public:
int area()
{
return this->length * this->breadth;
}
int area2()
{
return length * bredth;
}
};
这两种方法中哪一种会更快区1或区2,应该使用哪个?
【问题讨论】:
-
它们是相同的。
-
你检查过装配吗? gcc.godbolt.org/z/qYr1GExjh
-
两者在功能上是等价的,所以在运行时没有区别。编译时间的任何差异都将是特定于编译器的,但可能可以忽略不计。请注意,在某些情况下
this->是必要的,但您的示例不是其中之一。一般来说,我不会使用this->,除非它的使用是必要的——但这纯粹是一个文体问题(避免不必要的打字)。 -
@StephenNewell 我应该首先检查一下。
-
@StephenNewell 这并不意味着什么。即使源代码不相同,一个好的优化编译器也可以去除很多无关紧要的东西。
标签: c++ class pointers variables