我记得从我认真学c++开始,标准就说c++的struct可以有constructor了。 你记得可能是C吧。 对于这个case,如果你是对的,你可以用非常老版本的c++标准。但是这早晚是会被淘汰的。 没办法,马工就是要跟着标准evolve。技术类工作都一样:律师也要了解法律和判例的变化,医生的guideline也是会更新的 joeblackgod 发表于 2022-08-03 12:11
int main() { node *root; root = new node; root->next = 0; root->x = 12; }
完全没错。但是加入了struct的constructor后
struct node { int x; node *next; node(int y) : x(y), next(NULL) {} };
root = new node;这一行就提示错误了。 c++的struct从什么时候开始,可以有自己的构造函数的?我记得只有class才能有构造函数的。
当c++这些底层的规则变化了,码工编程的时候也要随着改变。 码工如何能不被牵着鼻子走呢?
你记得可能是C吧。
对于这个case,如果你是对的,你可以用非常老版本的c++标准。但是这早晚是会被淘汰的。
没办法,马工就是要跟着标准evolve。技术类工作都一样:律师也要了解法律和判例的变化,医生的guideline也是会更新的
以前学的struct都没有这个constructor。
好像从c++11开始的。就搞出了这个类似class的constructor来。
难道错误不是在于call new node的时候就要求输入一个初始值吗,或者定义node的init函数时候在没有输入初始值时给一个默认初始值
c++里面自古以来 struct 就等同于 class, 编译成一样的东西,so自古以来就可以有 ctor 可能默认 private/public不一样,太久不用,忘了。
the only difference between a struct and a class is things are default as public in struct while it is private in class.
这种 syntax error 都很简单处理。
你这种情况 可以加一个 default constructor 就搞定了, 如果 new 的地方太多。