1. 牽一發(fā)而動(dòng)全身

現(xiàn)在開(kāi)始進(jìn)入你的C++程序,你對(duì)你的類實(shí)現(xiàn)做了一個(gè)很小的改動(dòng)。注意,不是接口,只是實(shí)現(xiàn),而且是private部分。然后你需要rebuild你的程序,計(jì)算著這個(gè)build應(yīng)該幾秒鐘就足夠了。畢竟,只修改了一個(gè)類。你點(diǎn)擊了build 或者輸入了make( 或者其他方式),你被驚到了,然后羞愧難當(dāng),因?yàn)槟阋庾R(shí)到整個(gè)世界都被重新編譯和重新鏈接了!當(dāng)這些發(fā)生時(shí)你不覺(jué)的感到憤恨么?

回到頂部

2. 編譯依賴是如何發(fā)生的

問(wèn)題出在C++并不擅長(zhǎng)將接口從實(shí)現(xiàn)中分離出來(lái)。類定義不僅指定了類的接口也同時(shí)指定了許多類的細(xì)節(jié)。舉個(gè)例子:

大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計(jì)算培訓(xùn),高端軟件開(kāi)發(fā)培訓(xùn),項(xiàng)目經(jīng)理培訓(xùn)

 1 class Person { 2 public: 3 Person(const std::string& name, const Date& birthday, 4 const Address& addr); 5 std::string name() const; 6 std::string birthDate() const; 7 std::string address() const; 8 ... 9 private:10 std::string theName; // implementation detail11 Date theBirthDate; // implementation detail12 13 Address theAddress;              // implementation detail14 15 };

網(wǎng)友評(píng)論