c++ - 调用单例时未定义的引用
问题描述
这是这个问题的后续 (我将在最后发布必要的类定义以便理解它)
这次我有
Class1<Class2> & anObject= Class1Singleton::GetInstance();
我更正了先前的错误,因此现在GetInstance()
将返回类型的对象Class1
(不是单例!)分配给正确的类型。
我尝试构建它并编译!但是这次我遇到了链接器错误
undefined reference to Singleton<Class1<Class2>>::GetInstance()
collerc2: error: ld returned 1 exit status
起初我以为它不再是单例了,但实际上Class1Singleton
是单例!为什么链接器不能引用它的函数?
这些课程是:
template <class T>
class Singleton {
public:
static T& GetInstance()
{
static T instance;
return instance;
}
private:
Singleton() {}
~Singleton() = default;
}
和
class Class2;
template <class T>
class Class1{
void sayHi();
};
using Class1Singleton= Singleton<Class1<Class2>>;
解决方案
推荐阅读
- php - WP_Query 用于帖子关系和自定义帖子类型
- php - 使用 PDO (PHP) 在 mySQL 数据库中插入数字数据
- angular - Cordova 中的 Razorpay 集成 [RazorPayCheckout 未定义]
- python - GET 404 未能在烧瓶引导程序中加载资源错误
- php - PHP Wamp 服务器 - 一台服务器上有 2 个 SSL 证书
- validation - Golang 验证器:structExcept
- javascript - React / PrimeReact 应用程序未使用 JSON 从 Web 服务呈现数据表内容
- swift - UIView 未使用模型初始化
- php - 在 Symfony 中反序列化对象的索引数组
- sql - 选择一行Oracle中的所有值(所有行)