外部指针初始化
Extern pointer initialization
我有这样一个类:
Logger.h
class Logger{
std::string filename;
std::ofstream fileStream;
/*Some methods ...*/
};
extern Logger* log;
在另一个头文件中,我包含了*log定义:
foo。
#include "Logger.h"
class Foo{
Logger* log;
/*Other code*/
};
但是如果在Foo.cpp文件中,我尝试这样做:
log = new Logger();
编译器给我一个错误,你知道吗?
首先,必须定义声明为external
的变量。所以你需要有
Logger *log;
在Logger.cpp
。你也可以像这样初始化它:
Logger *log = new Logger();
第二,你不需要更多的声明,那就是你只需要包括Logger.h
,不需要在Foo.h
中声明另一个Logger
变量,只需要从Logger.h
中使用log
。
相关文章:
- 分段错误 - 读取初始化指针的数组
- 初始化指针的常量向量
- 初始化指针或引用成员变量以指向另一个成员
- C++初始化指针/引用/复制细微差别
- 使用无效指针初始化指针声明符的行为是否未定义?
- 在一行中初始化指针(新uint8_t[高度*宽度*3])
- 如何使用可变模板初始化指针?
- 初始化指针时出现写入访问冲突
- C 错误,带有卷曲括号的字面初始化指针
- 重新初始化指针是一种不好的做法吗?
- 初始化指针?C
- 初始化指针向量的向量
- 如何在类函数中正确初始化指针
- C++初始化指针会使应用程序随机崩溃
- 初始化指针结构 - 内存中的外观
- 如何使用struct构造函数在结构中初始化指针阵列
- 在一行中声明并初始化指针到类实例
- 分配数组与初始化指针
- QT 中的非初始化指针
- 使用地址值初始化指针