c ++构造函数没有匹配的函数

幽灵骑士
struct structA
{
  StructA( const int a ) { ... } ;
}

然后我的主要结构:

。H

struct MainStruct
{
   MainStruct( int x, int y ) ;
private :
    int _x ;
    int _y ;
    StructA _s ;

}

* .cpp

StructA( int x, int y) : _x(x) , _y(y)
{
  _s = StructA( x ) ;
}

怎么了?

如果我更换_s = StructA( x ) ;StructA s = StructA( x ) ;和私人删除它,它工作正常。这是为什么?

 In constructor .... 
 no matching function for call to 'StructA'
                       _y( y)
用户4581301

在进入构造函数体之前,必须完全构造所有类成员。_s无法构造,因为它没有在成员初始值设定项列表中指定适当的参数,并且没有供编译器与自动生成的代码一起使用的默认构造函数。

快速修复:使用成员初始值设定项列表

MainStruct( int x, int y) : _x(x) , _y(y), _s(x) 
{
}

如果我更换_s = StructA( x ) ;StructA s = StructA( x ) ;和私人删除它,它工作正常。这是为什么?

因为_s现在是一个仅存在于构造函数中Automatic 变量MainStruct它不再是MainStruct类成员,因此在进入构造函数体之前不需要对其进行初始化。请注意,在编译时,它对_s您完全无用,因为它仅在MainStruct构造函数中可见,并且将在构造函数结束时销毁。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

没有匹配的函数错误C ++构造函数

来自分类Dev

C ++类副本构造函数没有匹配功能

来自分类Dev

C ++没有匹配的构造函数的[]初始化

来自分类Dev

没有匹配的函数c ++

来自分类Dev

C ++:没有匹配的调用函数:为什么需要一个空的构造函数?

来自分类Dev

没有默认构造函数的奇怪的C ++复制构造函数

来自分类Dev

C ++-没有适当的默认构造函数

来自分类Dev

没有调用C ++默认构造函数

来自分类Dev

没有新C#的构造函数

来自分类Dev

没有新的C ++构造函数

来自分类Dev

没有调用C ++默认构造函数

来自分类Dev

C ++错误没有构造函数的实例

来自分类Dev

C ++-为什么在没有明显的构造函数匹配时为何编译此代码?

来自分类Dev

返回C ++对象时,“没有匹配的构造函数用于初始化”

来自分类Dev

C ++错误:没有匹配的构造函数用于初始化

来自分类Dev

在C ++中没有匹配的构造函数来初始化可变参数模板

来自分类Dev

vscode中的C ++:错误:没有匹配的构造函数来初始化'std :: thread'

来自分类Dev

C ++模板类:没有构造函数的实例与参数列表匹配

来自分类Dev

C ++-为什么在没有明显的构造函数匹配时为什么会编译此代码?

来自分类Dev

没有匹配函数来调用C ++

来自分类Dev

C ++:没有匹配的函数来调用

来自分类Dev

C ++错误没有匹配的调用函数

来自分类Dev

C ++:没有匹配的函数可调用''

来自分类Dev

没有与 (C++) 匹配的函数

来自分类Dev

c ++:函数“没有匹配的函数可调用”错误

来自分类Dev

C ++ 11多线程合并排序,错误为“没有构造函数'std :: thread'的实例与参数列表匹配”

来自分类Dev

没有调用C ++模板化静态成员构造函数

来自分类Dev

没有构造函数的C ++零初始化

来自分类Dev

没有参数名称的C ++构造函数

Related 相关文章

  1. 1

    没有匹配的函数错误C ++构造函数

  2. 2

    C ++类副本构造函数没有匹配功能

  3. 3

    C ++没有匹配的构造函数的[]初始化

  4. 4

    没有匹配的函数c ++

  5. 5

    C ++:没有匹配的调用函数:为什么需要一个空的构造函数?

  6. 6

    没有默认构造函数的奇怪的C ++复制构造函数

  7. 7

    C ++-没有适当的默认构造函数

  8. 8

    没有调用C ++默认构造函数

  9. 9

    没有新C#的构造函数

  10. 10

    没有新的C ++构造函数

  11. 11

    没有调用C ++默认构造函数

  12. 12

    C ++错误没有构造函数的实例

  13. 13

    C ++-为什么在没有明显的构造函数匹配时为何编译此代码?

  14. 14

    返回C ++对象时,“没有匹配的构造函数用于初始化”

  15. 15

    C ++错误:没有匹配的构造函数用于初始化

  16. 16

    在C ++中没有匹配的构造函数来初始化可变参数模板

  17. 17

    vscode中的C ++:错误:没有匹配的构造函数来初始化'std :: thread'

  18. 18

    C ++模板类:没有构造函数的实例与参数列表匹配

  19. 19

    C ++-为什么在没有明显的构造函数匹配时为什么会编译此代码?

  20. 20

    没有匹配函数来调用C ++

  21. 21

    C ++:没有匹配的函数来调用

  22. 22

    C ++错误没有匹配的调用函数

  23. 23

    C ++:没有匹配的函数可调用''

  24. 24

    没有与 (C++) 匹配的函数

  25. 25

    c ++:函数“没有匹配的函数可调用”错误

  26. 26

    C ++ 11多线程合并排序,错误为“没有构造函数'std :: thread'的实例与参数列表匹配”

  27. 27

    没有调用C ++模板化静态成员构造函数

  28. 28

    没有构造函数的C ++零初始化

  29. 29

    没有参数名称的C ++构造函数

热门标签

归档