C++指针查询
C++ Pointer Inquiry
所以我一直在摆弄静态、指针和typedef,我遇到了一堵砖墙,想知道是否有人能提供一些见解。
我有一个类Utils
和一个称为theLog
的static ofstream
,我有另一个使用Utils::theLog
的类Work
。以下是相关代码:
Utils.h
#ifndef UTILS_H
#define UTILS_H
// includes
class Utils {
public:
static ofstream theLog;
// other code
}
#endif
工作.cpp
// includes
typedef ofstream* pOfStream;
static pOfStream l = &(Utils::theLog); // l is a lowercase L
// constructor and destructor
void Work::doSomeWork() {
(*l) << "Hello, world!n";
}
// other code
这会编译并且不会产生运行时错误。然而,定义pOfStream
的原因是为了避免用星号、括号和Utils::theLog
填充我的代码。当我尝试用l
替换(*l)
时,如:l << "Hello, world!n";
中所示,我会遇到编译器错误。我假设原因是运算符<<
优先于*
,尽管l
的类型是pOfStream
,它被定义为指向ofstream
对象的指针,但代码并不是隐式编写的*l << "Hello, world!n";
。
我的问题是,有没有一种方法可以使用提取运算符<<
,而不必用括号和星号包围指针?此外,当您定义一个类似于上述pOfStream
的类型,然后将变量var
分配给类型pOfStream
时,编译器是否只是通读代码并将pOfStream
的任何实例替换为ofstream*
?
我一直在SO和谷歌上搜索答案,但我不确定该如何表达这个问题。
为什么不直接引用流,比如
ostream &l = Utils::theLog;
l << "Hello, World!n";
通过这种方式,您不必使用指针。
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 1d 智能指针不适用于语法 (*)++
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 为什么使用 "this" 指针调用派生成员函数?
- 函数向量_指针有不同的原型,我可以构建一个吗
- 使用指针从C++中的数组中获取最大值
- 助记符和指向成员语法的指针
- 嵌入方指针压缩已禁用
- 查询SQLite数据库中的日期
- 数组的指针从不分段故障
- 我可以查询是否是动态分配数组中的第一个指针
- 有关C++中的指针的查询
- C++指针查询
- 基于指针的查询
- 来自新手用户的共享指针查询.我下面的代码在使用带有成员共享指针的类容器时崩溃
- 指针基础:一个简单的查询
- 如何向上查询或向下查询接口指针
- C++指针查询
- 查询指针解引用
- 指针增量查询