在C#,C ++和Java中,创建带有参数的构造函数时,默认的无参数函数将消失。我一直只是接受这个事实,但是现在我开始怀疑为什么。
这种行为的原因是什么?难道仅仅是“安全措施/猜测”这样的说法:“如果您创建了自己的构造函数,那么您 可能 不希望这种隐式的构造函数徘徊”?还是出于技术原因,一旦您自己创建了构造函数,编译器就不可能添加一个?
如果您添加了自己的构造器,则没有理由编译器无法添加构造函数-编译器可以执行几乎所有需要的操作!但是,您必须查看最有意义的内容:
因此,在每种情况下,您都可以看到,就保留代码的 可能意图 而言,当前编译器的行为最有意义。