小编inn*_*SPG的帖子

C ++复杂静态初始化逻辑的最佳实践

我有很长的Java语言,对C ++还是比较陌生。因此,在Java中,如果在类级别有一些复杂的静态对象(在Java中,一切都在类级别),我们可以简单地使用静态块来对其进行初始化。例如

public class MyClass extends MyBase {

    public static final Map<String, AComplexClass> STATIC_MAP = new HashMap<String, AComplexClass> ();

    static {
        AComplexClass first = ComplexClassFactory.createComplexType1();
        first.configure("Something", "Something");

        STATIC_MAP.put("key1", first);

        // do some more
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,鉴于初始化C ++静态变量的局限性,如果我想定义相同的变量,这可能太复杂了STATIC_MAP,似乎我需要在.cpp文件中为每个AComplexClass对象命名变量,然后放入地图,在代码中创建一些垃圾也有机会让其他班级偶然提及他们。

那么,等效于此类静态初始化逻辑的C ++的最佳实践是什么?我认为这是相同的策略,但可能还有其他风格。

c++ java static

5
推荐指数
1
解决办法
1755
查看次数

如何在android中获得两个时间之间的分钟差

public int difftime(String string, String string2) {
        int hours;
        int min = 0;
        int days;
        long difference ;
        try {
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm");
            Date date1 = simpleDateFormat.parse("08:00 AM");
            Date date2 = simpleDateFormat.parse("04:00 PM");

             difference = date2.getTime() - date1.getTime();
             days = (int) (difference / (1000 * 60 * 60 * 24));
            hours = (int) ((difference - (1000 * 60 * 60 * 24 * days)) / (1000 * 60 * 60));
             min = (int) (difference - (1000 * 60 …
Run Code Online (Sandbox Code Playgroud)

android simpledateformat

2
推荐指数
1
解决办法
6223
查看次数

标签 统计

android ×1

c++ ×1

java ×1

simpledateformat ×1

static ×1