[問題] 同function name內容不同的方法
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++(C++ mfc)
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
none
問題(Question):
我現在需求是讓使用者在一開始,決定他要用TCP連線還是serial連線
TCP和serial不是重點
重點是我希望進去後兩種連線是用完全一樣的class, function name
例如open, close, recv, send
這樣才方便後面架構的整潔
目前我的寫法是這樣
int CMyDoc::mainLoop()
{
CConnect conn;
type = TCP; //使用者設定成TCP
conn.open();
while(1)
{
conn.recv(A,B,C);
}
}
int CConnect::open()
{
if(type == TCP)
m_tcpConn.open();
else(type == SERIAL)
m_serialConn.open();
//兩個open分別有不同程式碼
}
int CConnect::recv(A,B,C)
{
if(type == TCP)
m_tcpConn.recv(A,B,C);
else(type == SERIAL)
m_serialConn.recv(A,B,C);
}
而CConnect擁有成員
CTcpConnect m_tcpConn;
CSerialConnect m_serialConn;
這會造成我每次用recv時,都會多花一次在比對他的類型,實在很傷效能
想請問版上有沒有人能提供對付這種問題的關鍵字或建議呢?
希望是一開始有個註冊步驟,或者直接用index指到正確function之類的(?)
要維持最外層的function不動,裡面用到正確的處理方式
可是又不會跟我目前一樣每次進去都要比對一次
非常感謝各位m(_ _)m
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.164.140.79
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1433514538.A.516.html
推
06/05 22:30, , 1F
06/05 22:30, 1F
→
06/05 22:31, , 2F
06/05 22:31, 2F
→
06/05 22:51, , 3F
06/05 22:51, 3F
→
06/05 22:51, , 4F
06/05 22:51, 4F
→
06/05 23:01, , 5F
06/05 23:01, 5F
→
06/05 23:17, , 6F
06/05 23:17, 6F
推
06/06 01:43, , 7F
06/06 01:43, 7F
→
06/06 01:53, , 8F
06/06 01:53, 8F
→
06/06 01:59, , 9F
06/06 01:59, 9F
→
06/06 02:01, , 10F
06/06 02:01, 10F
→
06/06 02:04, , 11F
06/06 02:04, 11F
→
06/06 02:15, , 12F
06/06 02:15, 12F
→
06/06 02:15, , 13F
06/06 02:15, 13F
→
06/06 02:31, , 14F
06/06 02:31, 14F
→
06/06 02:36, , 15F
06/06 02:36, 15F
→
06/06 02:37, , 16F
06/06 02:37, 16F
→
06/06 06:39, , 17F
06/06 06:39, 17F
→
06/06 06:39, , 18F
06/06 06:39, 18F
→
06/06 10:49, , 19F
06/06 10:49, 19F
→
06/06 12:06, , 20F
06/06 12:06, 20F
→
06/06 12:07, , 21F
06/06 12:07, 21F
→
06/06 20:14, , 22F
06/06 20:14, 22F
→
06/06 20:14, , 23F
06/06 20:14, 23F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章