2016-09-23 121 views
10

我已經習慣了寫代碼,而無需模塊,其中頭文件包含的功能等聲明:使用C++模塊時,是否將函數聲明(.hpp文件)與它們的定義(.cpp文件)分開?

// foo.h 
class Foo 
{ 
    void bar(); 
}; 

和相應的.cpp文件中包含的定義:

// foo.cpp 
#include "foo.h" 

void Foo::bar() 
{ 
    // ... 
} 

據我所知,這完成到decrease compile time and reduce dependencies。當將使用modules時,這仍然適用?用Java和C#的方式將類定義在單個文件中的速度會如此快嗎?如果是這種情況,使用模塊時是否需要使用.hpp.cpp文件?

+0

你將如何引用一個函數?如果#include你的組合頭文件和.cpp文件,你將會增加定義函數。 – Ant

回答

0

有一個很好的討論here,解釋模塊的想法。

總之你是對的,頭文件和實現文件之間的分離將不再需要。 #include指令將被替換爲import指令,並且在編譯時模塊將提供否則將包含在頭文件中的必需信息。

相關問題