偷懒,单例写到了头文件中,奇怪的问题
x86下运行是么的问题,但是嵌入平台是不行的,似乎么有获取到统一个单例。最后单例改到.cpp中解决问题。原因未知。。。
master.h 文件
#include <iostream>
class Master {
public:
static Master& getInstance() {
static Master instance;
return instance;
}
void printLog() {
std::cout << "This is the log from the master instance." << std::endl;
}
Master& operator=(const Master&) = delete;
Master(const Master&) = delete;
Master(Master&&) = delete;
Master operator=(Master&&) = delete;
private:
Master() = default;
};
a.cpp中的引用
#include "master.h"
void test_instance() {
auto &a = Master::getInstance();
a.printLog();
std::cout << "instance add in a is " << &a << std::endl;
}
main.cpp
#include "master.h"
int main() {
auto& instance = Master::getInstance();
instance.printLog();
std::cout << "instance add is " << &instance << std::endl;
extern void test_instance();
test_instance();
return 0;
}