c – 默认情况下,默认构造函数在某些情况下不可用
发布时间:2020-12-16 10:27:48 所属栏目:百科 来源:网络整理
导读:class foo {public: int a; int b; foo(int a_,int b_) : a(a_),b(b_) {}};int main() { foo f;} 当我尝试编译上面的代码片段时,我收到如下错误消息: foo.cc: In function 'int main()'foo.cc:12: error: no matching function for call to 'main()::foo::f
class foo { public: int a; int b; foo(int a_,int b_) : a(a_),b(b_) {} }; int main() { foo f; } 当我尝试编译上面的代码片段时,我收到如下错误消息: foo.cc: In function 'int main()' foo.cc:12: error: no matching function for call to 'main()::foo::foo()' foo.cc:10: note: candidates are: main()::foo::foo(int,int) foo.cc:6: note: main()::foo::foo(const main()::foo&) 但如果我用两个整数prarmeters评论显式构造函数的文件,那么 我对吗?如果对,为什么c有这种行为?提前致谢. 解决方法
仅当没有用户定义的构造函数时,编译器才会生成默认构造函数.
C标准12.1 / 5:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |