[問題] 何謂interface change
常常聽到同事會提到: 這樣interface會change耶 對方程式要重新build不太好
我想他指的是 對方拿到 dll+header 只要他exe不重新build 我只要interface不change
他只要替換dll exe應該就正常執行
但我稍微問一下他們似乎變成 .h有改動 = interface change...
我覺得怪怪的
我觀念是
只要你.h 裡面的virtual function 不管是宣告順序或是加入一些其他virtual function
導致vtable存放的位址有順序上的改變
雖然dll替換了 但.h沒有換 沒有重新編譯 exe執行才會壞吧?
如果我只是在.h多宣告一個普通member function或是data
沒動到vtable
對方雖然沒重新build 就算要重新build + 沒有替換.h
應該還是可以link的到我dll正確的function 只是沒辦法用我新加的function不是嗎?
舉個例子 如果我現在class給對方使用(但我忘了寫copy constructor)
事後 我想加一個copy constructor上去 所以我.h寫了個 XXX(X&);
cpp做了一大堆定義
對方照理講 如果沒用到copy constructor的話
應該exe根本不需要重新build吧??
想確認一下我觀念...
ps. 我有看到一些寫法類似在private只保留一個Imp指標(包一堆data or function)
把所有實作都搞在cpp 查了一下 似乎是bridge pattern...
但這個pattern應該不是用來避免interface change吧?
只不過可以把資料包的更隱密 讓對方用妳dll 看到.h不會洩露太多private資料
也不用給別人看到....????
如有錯誤請大力指點....
謝謝各位
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.192.93.10
推
06/03 00:28, , 1F
06/03 00:28, 1F
→
06/03 00:35, , 2F
06/03 00:35, 2F
→
06/03 00:35, , 3F
06/03 00:35, 3F
→
06/03 00:36, , 4F
06/03 00:36, 4F
→
06/03 00:37, , 5F
06/03 00:37, 5F
→
06/03 00:38, , 6F
06/03 00:38, 6F
→
06/03 00:39, , 7F
06/03 00:39, 7F
→
06/03 00:39, , 8F
06/03 00:39, 8F
※ 編輯: QQ29 來自: 123.192.93.10 (06/03 00:39)
→
06/03 00:40, , 9F
06/03 00:40, 9F
→
06/03 00:40, , 10F
06/03 00:40, 10F
→
06/03 00:40, , 11F
06/03 00:40, 11F
→
06/03 00:43, , 12F
06/03 00:43, 12F
→
06/03 00:43, , 13F
06/03 00:43, 13F
→
06/03 00:44, , 14F
06/03 00:44, 14F
→
06/03 00:44, , 15F
06/03 00:44, 15F
→
06/03 00:45, , 16F
06/03 00:45, 16F
→
06/03 00:45, , 17F
06/03 00:45, 17F
→
06/03 00:47, , 18F
06/03 00:47, 18F
→
06/03 00:47, , 19F
06/03 00:47, 19F
→
06/03 00:47, , 20F
06/03 00:47, 20F
→
06/03 00:49, , 21F
06/03 00:49, 21F
→
06/03 00:49, , 22F
06/03 00:49, 22F
→
06/03 00:49, , 23F
06/03 00:49, 23F
→
06/03 00:51, , 24F
06/03 00:51, 24F
→
06/03 00:51, , 25F
06/03 00:51, 25F
→
06/03 00:52, , 26F
06/03 00:52, 26F
→
06/03 00:54, , 27F
06/03 00:54, 27F
→
06/03 00:55, , 28F
06/03 00:55, 28F
→
06/03 01:01, , 29F
06/03 01:01, 29F
→
06/03 01:15, , 30F
06/03 01:15, 30F
→
06/03 01:15, , 31F
06/03 01:15, 31F
→
06/03 01:16, , 32F
06/03 01:16, 32F
→
06/03 01:17, , 33F
06/03 01:17, 33F
→
06/03 01:18, , 34F
06/03 01:18, 34F
→
06/03 01:19, , 35F
06/03 01:19, 35F
→
06/03 01:20, , 36F
06/03 01:20, 36F
→
06/03 01:20, , 37F
06/03 01:20, 37F
→
06/03 01:21, , 38F
06/03 01:21, 38F
→
06/03 01:46, , 39F
06/03 01:46, 39F
→
06/03 01:47, , 40F
06/03 01:47, 40F
→
06/03 01:47, , 41F
06/03 01:47, 41F
→
06/03 01:48, , 42F
06/03 01:48, 42F
→
06/03 01:48, , 43F
06/03 01:48, 43F
→
06/03 01:48, , 44F
06/03 01:48, 44F
→
06/03 02:02, , 45F
06/03 02:02, 45F
→
06/03 02:02, , 46F
06/03 02:02, 46F
→
06/03 10:31, , 47F
06/03 10:31, 47F
→
06/03 10:32, , 48F
06/03 10:32, 48F
→
06/03 10:32, , 49F
06/03 10:32, 49F
→
06/03 10:33, , 50F
06/03 10:33, 50F
推
06/03 10:41, , 51F
06/03 10:41, 51F
→
06/03 10:42, , 52F
06/03 10:42, 52F
→
06/03 10:43, , 53F
06/03 10:43, 53F
→
06/03 13:22, , 54F
06/03 13:22, 54F
→
06/03 14:24, , 55F
06/03 14:24, 55F
→
06/03 14:24, , 56F
06/03 14:24, 56F
→
06/03 14:24, , 57F
06/03 14:24, 57F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章