Sre*_*ram 1 c++ compilation class function
我是c ++(以及编程本身)的新手,这就是我所听到的:
如果我们编译一个普通函数,编译器会创建一个指向该函数的指针,并将构成函数体的指令放在别处.这是普通函数的编译方式.但是在内联函数的情况下,编译器在编译期间生成代码并将其替换为内联函数调用.
我的问题是当编译成员函数(C++类)时,它们被视为内联函数还是被视为普通函数?
它们就像普通函数一样,但有一个例外:如果在类定义中编写函数定义(下面的示例),则会自动为函数指定inline关键字:
[C++11: 9.3/2]:可以在其类定义中定义成员函数(8.4),在这种情况下,它是内联成员函数(7.1.2),或者如果它已经被声明但未在其定义中定义,则可以在其类定义之外定义它.类定义.
struct T
{
void foo() // the same as `inline void foo()`
{
// ...
}
};
Run Code Online (Sandbox Code Playgroud)
但这并不意味着该课程将被内联; 该inline关键字仅仅是一个暗示,时下在很大程度上忽略了,当谈到决定是否实际内联函数,尽管它确实影响联动.
| 归档时间: |
|
| 查看次数: |
117 次 |
| 最近记录: |