gpt4 book ai didi

c++ - 将任何派生类使用的函数放在基类中?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:56:39 27 4
gpt4 key购买 nike

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... */ }

};

如上例所示,将所有派生类使用的所有可能函数都放在基类中,是否存在或可能存在任何设计问题或不可预见的后果?

最佳答案

如果你想确保(强制)所有这些功能将在所有派生类中实现,你应该让它们虚拟的。否则,尝试预先确定并列出所有可能的 空体函数就没有多大意义。从你的例子来看,你似乎需要不止一层的继承。

关于c++ - 将任何派生类使用的函数放在基类中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8782762/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com