【发布时间】:2012-09-05 06:32:40
【问题描述】:
我目前正在用 c++ 编写一些 WinRT 自定义控件,我的编译器/智能感知告诉我不允许使用静态构造函数。
我需要设置一些静态数据,我可以使用私有 bool 实例标志,在我的类的第一次实例化时,我可以创建静态数据等。(有效地实现同样的事情)。
但是,也许我错过了一些东西,因为这似乎有点啰嗦。
WinRT/c++ 中静态构造的规范替代方法是什么
谢谢
【问题讨论】:
-
这些都不是 WinRT 特有的,是吗?您只是在问如何在 C++ 中初始化静态数据?能给我举个例子吗?为什么需要静态构造函数来初始化它?为什么不只是...初始化它?
-
作为一名 c# 开发人员,我习惯于使用静态构造函数,并且我认为 c++ 中有一个等价的 - 但是是的,我只需要实例化和初始化静态数据
-
@DeanChalk 我认为 C++ 没有静态构造函数这样的概念。我不明白为什么普通的构造函数不能完成你需要的工作。为什么不发布一些相关代码。你可能只是犯了一些简单的错误。
-
@jalf 实际上我猜这不是 C++ 问题,而是 C++/CX 问题(因此以某种方式特定于 WinRT),但我不确定,因为 OP 不知道区别或者他确实使用 WRL 使用标准 C++ 和 WinRT。考虑到它拥有的许多其他 .NETism,C++/CX 可能确实有静态构造函数(尽管问题似乎没有)。
-
C++/CX 没有静态构造函数。无论如何,一个明显的答案是“使用更少的静态”:)
标签: c++ windows-8 windows-runtime c++-cx