小编gea*_*uch的帖子

C ++-无法将派生类型作为基本类型列表传递给构造函数

我正在尝试实现一个类,该类是由相同抽象基类的不同实现方式构成的。这是一个最小的示例:

struct Base {
    virtual ~Base() {}
    virtual void something() const = 0;
}
Run Code Online (Sandbox Code Playgroud)

从该基础派生出两个类(Derived1和Derived2):

class Derived1 : public Base {
public:
    void something() const override {
        std::cout << "derived 1" << std::endl;
    }
};

class Derived2 : public Base {
public:
    void something() const override {
        std::cout << "derived 2" << std::endl;
    }
};
Run Code Online (Sandbox Code Playgroud)

我想要做的是通过构造函数将这些类的实例传递给另一个类(集合)。我试图使用std :: initializer_list实现此目的:

class Collection {
public:
    Collection(std::initializer_list<Base> args) {
        for(auto& arg: args) {
            arg.something();
        }
    }
};
Run Code Online (Sandbox Code Playgroud)

当我尝试像这样调用该构造函数时

Derived1 d1;
Derived2 d2;
Collection col({d1, …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance c++14

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

如何在 Java 中解析 ISO 8601 最新版本?

我正在尝试将 ISO 8601 日期解析为 Date 对象,但我不能。

我正在尝试以下操作:

        String date = "2021-05-14T09:26:20";
        
        SimpleDateFormat parser = new SimpleDateFormat("yyyy-MM-dd HH:MM:ss");
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:MM:ss");
        Date newDate = parser.parse(date);
        System.out.println(format.format(newDate));
Run Code Online (Sandbox Code Playgroud)

但我收到这个错误:

Exception in thread "main" java.text.ParseException: Unparseable date: "2021-05-14T09:26:20"
    at java.text.DateFormat.parse(DateFormat.java:366)
    at com.pruebas.pruebas.fechas.main(fechas.java:14)
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

java java-8

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

标签 统计

c++ ×1

c++14 ×1

inheritance ×1

java ×1

java-8 ×1