class tabBase
{
public:
tabBase() { }
virtual ~tabBase() { }
virtual void write() {}
virtual void read() {}
virtual void start() {}
virtual void stop() {}
virtual void connect() {}
virtual void disconnect() {}
virtual void openFile() {}
virtual void closeFile() {}
virtual void searchForText() {}
};
class tcpServerTab : public tabBase
{
public:
tcpServerTab() { /* ...code... */ }
virtual ~tcpServerTab() { /* ...code... */ }
virtual void write() { /* ...code... */ }
virtual void read() { /* ...code... */ }
virtual void start() { /* ...code... */ }
virtual void stop() { /* ...code... */ }
};
class tcpClientTab : public tabBase
{
public:
tcpClientTab() { /* ...code... */ }
virtual ~tcpClientTab() { /* ...code... */ }
virtual void write() { /* ...code... */ }
virtual void read() { /* ...code... */ }
virtual void start() { /* ...code... */ }
virtual void stop() { /* ...code... */ }
virtual void connect() { /* ...code... */ }
virtual void disconnect() { /* ...code... */ }
};
class plainTextTab : public tabBase
{
public:
plainTextTab() { /* ...code... */ }
virtual ~plainTextTab() { /* ...code... */ }
virtual void openFile() { /* ...code... */ }
virtual void closeFile() { /* ...code... */ }
virtual void searchForText() { /* ...code... */ }
};
是否存在或可能存在任何設計問題或無法預料的後果將所有可能的函數用於基類中的任何派生類,如上例所示?將函數放置在基類中的任何派生類中使用?
這要看。你打算以多態的方式使用這些類嗎? – 2012-01-09 00:38:06
是的,我也想。 – TheFuzz 2012-01-09 01:03:49