NB Bu, satır içi işlevlerin nasıl kullanılacağı veya nasıl çalıştıkları ile ilgili bir soru değildir, daha çok neden oldukları gibi yapıldıklarıdır.
Bir sınıf üyesi işlevin bildiriminin bir işlevi tanımlaması gerekmez inline
, bu yalnızca işlevin gerçek uygulamasıdır. Örneğin, başlık dosyasında:
struct foo{
void bar(); // no need to define this as inline
}
Öyleyse neden bir sınıf işlevinin satır içi uygulaması başlık dosyasında olmak zorunda? Neden satır içi işlevi .cpp
dosyaya koyamıyorum ? Satır içi tanımı .cpp
dosyaya koymaya çalışırsam, şu satırlar boyunca bir hata alırdım:
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
inline
bir tanımda göründüğünde, ancak önceki bir beyanda bulunmadığında veya tam tersi durumlarla ilgili sorular soruyor olabilirsiniz . Öyleyse, bu yardımcı olabilir: stackoverflow.com/questions/4924912/…