NB Ini bukan pertanyaan tentang bagaimana menggunakan fungsi sebaris atau bagaimana mereka bekerja, lebih banyak mengapa mereka dilakukan sebagaimana adanya.
Deklarasi fungsi anggota kelas tidak perlu mendefinisikan fungsi inline, ini hanya implementasi sebenarnya dari fungsi tersebut. Misalnya, di file header:
struct foo{
void bar(); // no need to define this as inline
}
Jadi mengapa implementasi inline dari fungsi kelas harus berada di file header? Mengapa saya tidak bisa meletakkan fungsi sebaris di .cppfile? Jika saya mencoba meletakkan definisi sebaris di .cppfile, saya akan mendapatkan kesalahan di sepanjang baris:
error LNK2019: unresolved external symbol
"public: void __thiscall foo::bar(void)"
(?bar@foo@@QAEXXZ) referenced in function _main
1>C:\Users\Me\Documents\Visual Studio 2012\Projects\inline\Debug\inline.exe
: fatal error LNK1120: 1 unresolved externals
inlinemuncul pada definisi tetapi bukan deklarasi sebelumnya vs sebaliknya . Jika demikian, ini dapat membantu: stackoverflow.com/questions/4924912/…