ใน archaic C และ C ++ inline
มีลักษณะregister
ดังนี้: ข้อเสนอแนะ (ไม่มีอะไรมากไปกว่าข้อเสนอแนะ) สำหรับคอมไพเลอร์เกี่ยวกับการปรับให้เหมาะสมที่สุด
ใน C ++ สมัยใหม่inline
บอกตัวเชื่อมโยงว่าถ้าพบคำจำกัดความหลายคำ (ไม่ใช่การประกาศ) ในหน่วยการแปลที่ต่างกันพวกมันเหมือนกันทั้งหมดและตัวเชื่อมโยงสามารถเก็บหนึ่งและทิ้งอีกอันได้อย่างอิสระ
inline
เป็นสิ่งจำเป็นถ้าฟังก์ชั่น (ไม่ว่าซับซ้อนหรือ "เชิงเส้น") ถูกกำหนดในไฟล์ส่วนหัวเพื่ออนุญาตให้หลายแหล่งรวมมันโดยไม่ได้รับข้อผิดพลาด "หลายคำนิยาม" โดย linker
ฟังก์ชั่นสมาชิกที่กำหนดไว้ในชั้นเรียนคือ "inline" โดยค่าเริ่มต้นเช่นเดียวกับฟังก์ชั่นแม่แบบ (ตรงกันข้ามกับฟังก์ชั่นทั่วโลก)
//fileA.h
inline void afunc()
{ std::cout << "this is afunc" << std::endl; }
//file1.cpp
#include "fileA.h"
void acall()
{ afunc(); }
//main.cpp
#include "fileA.h"
void acall();
int main()
{
afunc();
acall();
}
//output
this is afunc
this is afunc
หมายเหตุรวมของ fileA.h เป็นสองไฟล์ .cpp afunc()
ผลในสองกรณีของ ตัวเชื่อมโยงจะยกเลิกหนึ่งในนั้น หากไม่inline
ได้ระบุไว้ลิงเกอร์จะบ่น