![]() |
1
2
代码有几个问题:
除此之外,我强烈建议你 avoid environment variables and singletons . 这两个都是“共享可变状态”的例子,可能导致很多混乱。单例,虽然它们出现在“设计模式”书籍中已经有很长一段时间了,但现在被理解为设计。 反模式 . 这是一种更灵活的方法,让您传递一个接口,只需实例化一次,而不是将它烘焙到它的api中。 例如,对于您的特殊情况,我建议如下:
然后,在以前使用singleton的任何类中,只需获取const printer&对象。打印到那个物体上。在其他地方,可以有条件地构造stringprinter(“singleton”)或stringprinter(“dotted”)。或者可能是那个接口的其他实例,尽管我建议使用 QSettings 或者使用某种配置文件代替环境变量,或者至少使用myapplicationname_样式而不是仅使用样式;换句话说,如果要使用环境变量路由,至少要限定其名称。 |
![]() |
2
1
这不是一个很好的错误信息。问题是编译器无法为构造函数调用生成代码,它还没有看到点式类的定义。C++编译器仍然是单程编译器。不能内联编写方法,必须移动它。
|
![]() |
3
0
我不明白这是怎么回事。此时:
虚线是不完整的类型。使用g++4.4.1,我得到:
你在用哪个编译器? |
![]() |
4
0
我得到的第一个错误是:
之后,下一个错误是:
“不完整类型的使用无效。” 如果使用forward声明,则必须将声明和实现分开,这样就可以在定义完类型之后执行需要完整类型的操作。 |
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |