gpt4 book ai didi

Xcode 中的 C++ 单例

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:15:41 24 4
gpt4 key购买 nike

我正在尝试使用 Xcode 在 C++ 中创建单例类。这是一个非常基本的类,我收到一个我不明白的链接器错误。任何人都可以帮忙吗?

这是类的头文件:

#ifndef _NETWORK_H_
#define _NETWORK_H_

#include <iostream>
#include <list>
#include "Module.h"

using namespace std;

/*
* Assume only one network can run at a time
* in the program. So make the class a singleton.
*/
class Network {
private:
static Network* _instance;
list<Module*> _network;

public:
static Network* instance();
};

#endif

这是实现文件:

#include "Network.h"

Network* Network::instance() {
if (!_instance)
_instance = new Network();
return _instance;
}

这是编译错误:

Undefined symbols for architecture x86_64:
"Network::_instance", referenced from:
Network::instance() in Network.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

最佳答案

您需要在某处为 Network::_instance 声明实际存储。可能是暗示。文件。

尝试添加到您的 impl 文件中:

Network *Network::_instance=0;

关于Xcode 中的 C++ 单例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8996921/

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