def starts_at
DateTime.strptime(attributes['starts_at'], whatever_format).in_time_zone(whatever_timezone)
end
尝试运行此代码时,我得到了
的分配不兼容
private: char * args[]; public: Command(char * a[]){args = a}
到char**
我很难理解正在发生的事情。
答案 0 :(得分:5)
首先,char * args[];
不正确。在标准C ++中,数组在定义时必须具有指定的大小。 (明显的)异常是当您编写类似int arr[] = {1,2,3,4,5};
的内容时,但在这种情况下,编译器会自动将大小设置为5,因为它在编译时确定大小。
其次,您无法复制数组。在你的功能
Command(char * a[]){args = a}
a
衰减到char**
。然后,您尝试分配给args
,这是一个数组,类型为char**
的指针。这不行。您无法分配给数组。
如果您指定/复制数组,最好的办法是使用标准容器,例如std::vector
。
答案 1 :(得分:2)
声明char * args[]
表示指向非const
char
的指针数组。这是无效的代码。标准C ++不允许将未知绑定数组作为数据成员。
原始数组不可分配,因此构造函数体中的赋值也是无效代码。