c++ - 什么是类的静态对象,在类定义中,调用类的静态成员函数有哪些不同的方法?
问题描述
我发现了一个类似的代码,如下所示,有两件事让我感到困惑。第一个,是否可以在类的定义中拥有类的对象,如下面代码 1 中的示例所示?我虽然这是不可能的,但也许静态关键字使这成为可能。这是正确的吗?这里到底发生了什么?
第二个,我了解到我们可以通过调用类名和作用域解析运算符(以及我们想要的成员)来访问类的静态成员变量和静态成员函数。显然,code1 中描述的方式是这样做的另一种方式。那么,这样做的主要区别(或优势)是什么?换句话说,代码1和代码2有什么区别?
//CODE 1
namespace LOGGER {
class Logger;
}
class LOGGER::Logger {
void foo(){}
public:
static Logger logger;
};
int main()
{
LOGGER::Logger::logger.foo();
}
//CODE 2
namespace LOGGER {
class Logger;
}
class LOGGER::Logger {
public:
static void foo(){}
};
int main()
{
LOGGER::Logger::foo();
}
解决方案
推荐阅读
- kubernetes - 无法删除 Kubernetes 中的 apache solr operator CRD
- python - Scrapy 在更好的设备上的执行速度比在更差的设备上慢,我不明白为什么
- python - Xpath Python 从两个标题之间的表中提取数据
- python - 如何加入目录内的所有txt文件?(尊重所有行都在另一行之下)
- visual-studio-code - 如何使 cmd 成为打开 VS Code 时在 VSCode 中打开的默认终端。?
- vb.net - 使用 sendkey 命令 VBA 查看 Excel 公式
- node.js - 如何创建插件以在其他网站上销售我的产品?
- arrays - 为什么即使矩阵中存在元素,我也找不到输出元素?
- c - malloc_chunk 的布局到底是什么样的?
- javascript - 这个终端是什么意思?(使用 Next.js 下一个/路由器)