sách gpt4 ăn đã đi

c++ - undefined reference - C++ 链接器错误

In lại 作者:搜寻专家 更新时间:2023-10-31 00:05:56 29 4
mua khóa gpt4 giày nike

我收到一条 undefined reference 错误消息,关于这个声明:

GlobalClass *GlobalClass::s_instance = 0;

有什么想法吗?代码如下:

============================================= =

#ifndef GLOBALCLASS_H_
#define GLOBALCLASS_H_

#include
class GlobalClass {

công cộng:

std::string get_value();

void set_value(std::string);

static GlobalClass *instance();

static GlobalClass *s_instance;

riêng tư:

std::string m_value;
};

#endif /* GLOBALCLASS_H_ */

=============================================

#include 
#include "GlobalClass.h"



/*
GlobalClass(int v = 0)
{
m_value = v;
}
*/

static GlobalClass *s_instance;

std::string GlobalClass::get_value()
{
return m_value;
}

void GlobalClass::set_value(std::string v)
{
m_value = v;
}

static GlobalClass *instance() {
if (!s_instance)
s_instance = new GlobalClass;
return s_instance;
}

============================================= ============

#include 
#include "GlobalClass.h"

sử dụng không gian tên std;

int chính() {

GlobalClass::s_instance = 0;


std::string myAddress = "abc";
GlobalClass::instance()->set_value(myAddress); \\ <=== compiler error
std::cout << "====>address is is " << GlobalClass::instance()->get_value()
<< std::endl;
trả về 0;
}

câu trả lời hay nhất

您是否正在尝试实现单例类? IE。您只需要该类的一个实例,并且您希望该实例可供包含该类的任何人使用。我认为它通常被称为 Singleton,以下示例按预期工作:

单例.h:

#include 
class Singleton
{
công cộng:
static Singleton* instance()
{
if ( p_theInstance == 0 )
p_theInstance = new Singleton;
return p_theInstance;
}
void setMember( const std::string& some_string )
{
some_member = some_string;
}
const std::string& get_member() const
{
return some_member;
}

riêng tư:
Singleton() {}
static Singleton* p_theInstance;
std::string some_member;
};

单例.cpp:

Singleton* Singleton::p_theInstance = 0;

主要.cpp:

#include 
#include
#include "Singleton.h"

int chính()
{
std::string some_string = "Singleton class";
Singleton::instance()->setMember(some_string);
std::cout << Singleton::instance()->get_member() << "\n";
}

请注意,构造函数是私有(private)的,我们不希望任何人创建我们的单例实例,除非是通过“instance()”运算符。

关于c++ - undefined reference - C++ 链接器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1122938/

29 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress