在C++中使用内联函数的优点/缺点是什么?我看到它只会提高编译器输出的代码的性能,但是使用今天的优化编译器,快速CPU,大容量存储器等(不像1980年那样<内存稀缺,一切都必须适合100KB内存)什么他们今天真的有优势吗?
假设我有一个基本的2D矢量类
class vector2
{
int x, y;
}
Run Code Online (Sandbox Code Playgroud)
这两个值可用于表示位置以及宽度和高度.C++是否为我提供了一个可以实现的功能vector2::getXpos()
,然后定义vector2::getWidth()
并让它使用相同的实现.
我知道我可以让这两个函数内联,但编译器可能决定不内联这些函数.所以如果getWidth
刚刚调用getXpos
你最终会有两个函数调用.
我想要使用它的一个更加复杂的例子是getLength()
和嗯... getSpan()
(当你说40"电视时想到这里的屏幕)
我会假设这将是一个类似于特殊函数定义的简单情况......我确实找到了这个页面,但这听起来像是一个C功能...而且有点破解工作.
编辑
我不是在询问内联函数的机制......我基本上想要在功能上做一些事情
class MyClass
{
void ActaullyDoStuff();
public:
void foo(){ActaullyDoStuff();}
void bar(){ActuallyDoStuff();}
}
Run Code Online (Sandbox Code Playgroud)
但在哪里我可以写出类似的东西
class MyBetterClass
{
public:
void foo(){ /* BLOCK OF CODE */ }
void bar(){ /* DO WHAT EVER foo() DOES */ }
}
Run Code Online (Sandbox Code Playgroud)
我希望bar()
成为另一种方式,foo()
使得相同的功能代码可以根据情况具有不同的,更合适的名称.