c++ h cpp文件如何关联_C++核心准则SF.5: .cpp文件必须包含定义它接口的.h文件
SF.5: A?.cpp?file must include the?.h?file(s) that defines its interface
SF.5: .cpp文件必須包含定義它接口的.h文件
Reason(原因)
This enables the compiler to do an early consistency check.
這樣可以讓編譯器盡早進(jìn)行一致性檢查。
Example, bad(反面示例)
// foo.h:void foo(int);
int bar(long);SF.5:?.cpp文件必須包含定義它接口的.h文件
int foobar(int);
// foo.cpp:
void foo(int) { /* ... */ }
int bar(double) { /* ... */ }
double foobar(int);
The errors will not be caught until link time for a program calling?bar?or?foobar.
如果有程序調(diào)用bar或foobar,直到鏈接時這個錯誤才能被發(fā)現(xiàn)。
Example(示例)
// foo.h:void foo(int);
int bar(long);
int foobar(int);
// foo.cpp:
#include
void foo(int) { /* ... */ }
int bar(double) { /* ... */ }
double foobar(int); // error: wrong return type
The return-type error for?foobar?is now caught immediately when?foo.cpp?is compiled. The argument-type error for?bar?cannot be caught until link time because of the possibility of overloading, but systematic use of?.h?files increases the likelihood that it is caught earlier by the programmer.
當(dāng)foo.cpp被編譯時,foobar的返回值類型錯誤可以立即被發(fā)現(xiàn)。由于可能存在的重載,直到鏈接時,bar的參數(shù)類型錯誤才能被發(fā)現(xiàn)。但是系統(tǒng)性地使用.h文件會提高錯誤被程序員早期發(fā)現(xiàn)的可能性。
Enforcement(實(shí)施建議)
???
原文鏈接
https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#sf5-a-cpp-file-must-include-the-h-files-that-defines-its-interface
新書介紹
《實(shí)戰(zhàn)Python設(shè)計模式》是作者最近出版的新書,拜托多多關(guān)注!
本書利用Python 的標(biāo)準(zhǔn)GUI 工具包tkinter,通過可執(zhí)行的示例對23 個設(shè)計模式逐個進(jìn)行說明。這樣一方面可以使讀者了解真實(shí)的軟件開發(fā)工作中每個設(shè)計模式的運(yùn)用場景和想要解決的問題;另一方面通過對這些問題的解決過程進(jìn)行說明,讓讀者明白在編寫代碼時如何判斷使用設(shè)計模式的利弊,并合理運(yùn)用設(shè)計模式。
對設(shè)計模式感興趣而且希望隨學(xué)隨用的讀者通過本書可以快速跨越從理解到運(yùn)用的門檻;希望學(xué)習(xí)Python GUI 編程的讀者可以將本書中的示例作為設(shè)計和開發(fā)的參考;使用Python 語言進(jìn)行圖像分析、數(shù)據(jù)處理工作的讀者可以直接以本書中的示例為基礎(chǔ),迅速構(gòu)建自己的系統(tǒng)架構(gòu)。
覺得本文有幫助?請分享給更多人。
關(guān)注微信公眾號【面向?qū)ο笏伎肌枯p松學(xué)習(xí)每一天!
面向?qū)ο箝_發(fā),面向?qū)ο笏伎?#xff01;
總結(jié)
以上是生活随笔為你收集整理的c++ h cpp文件如何关联_C++核心准则SF.5: .cpp文件必须包含定义它接口的.h文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: web大作业介绍自己的家乡_襄阳市恒大名
- 下一篇: JAVA进阶教学之(泛型)