gpt4 book ai didi

c++ - OO编程设计题: Global Object part II

转载 作者:太空宇宙 更新时间:2023-11-04 14:28:31 25 4
gpt4 key购买 nike

很抱歉重新发布这个,但由于某些原因我不能添加评论到我的旧邮政。有些人想知道我在尝试执行时收到的确切错误消息以下内容:

我可能有一个很简单的问题,但我没有找到合适的设计决定呢。基本上,我有 4 个不同的继承类和每个类都有 10 多个方法。

这些类中的每一个都应该使用相同的 TCP 套接字;这对象在整个程序执行过程中保持一个对服务器开放的套接字。我的想法是将 TCP obejct 声明为“全局”,以便所有其他类可以使用它:

 classTCP TCPSocket;

class classA
{
private:
public:
classA();
virtual void method1();
...

};

class classB
{
private:
public:
classB();
virtual void method1();
...

};

对于classC和classD等等...

不幸的是,当这样声明时,我的 Symbian GCC-E 编译器给了我以下错误信息

elf2e32:错误:E1027:ELF 文件包含已初始化的可写数据。

所以我想知道是否有任何其他方式可以声明它TCP 对象,以便它可用于所有其他类及其方法? classA() 是第一个被调用的方法初始化这个子系统。

非常感谢!

最佳答案

有一种非常优雅的方法可以按需检索静态实例。

classTCP& SingletonInstance()
{
static classTCP instance;
return instance;
}

想法是使用 c++ 功能仅按需初始化局部静态变量。

关于c++ - OO编程设计题: Global Object part II,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1232175/

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