1. 程式人生 > >為什麽C++中聲明和定義要分開寫

為什麽C++中聲明和定義要分開寫

使用 還得 開始 階段 怎麽辦 clu 即使 tip 文件中

現在開始寫項目了,你會發現我們一般都要寫一個cpp,對應的還得有一個h文件,那麽為什麽在C++中我們要這麽做?

.h就是聲明,.cpp就是實現,而所謂分離式實現就是指“聲明”和“定義”分別保存在不同的文件中,聲明保存在.h文件、定義保存在.cpp文件中。

那麽將聲明和定義分離有什麽意義嗎?

首先從非分離式(聲明的同時給出定義)看,其內容一般保存在.h文件中,以供多個源文件引用。

但是將定義放在頭文件,那麽當多個源文件使用#include命令包含此類的頭文件便會在鏈接階段出現“multiple definition”鏈接錯誤!

那麽想讓多個文件使用此頭文件,又不引發鏈接的“multiple definition”錯誤該怎麽辦呢?

分離式的實現便可以解決這個問題。因為.h文件中只包含聲明,即使被多個源文件引用也不會導致“multiple definition”鏈接錯誤。

所以分離式實現增強了命名空間的實用性。

為什麽C++中聲明和定義要分開寫