【问题标题】:no Appropriate default constructor available in vc++vc++中没有合适的默认构造函数
【发布时间】:2014-12-10 13:47:36
【问题描述】:

我在一个名为 X 的类中有一个方法 Close()。我想在另一个名为 Y 的类中使用该函数。我为 A 类创建了一个对象,并在那里调用了 Close() 函数。那时我收到一个错误“没有可用的适当的默认构造函数”。

我是这样创建的..

X x;  x.Close();

我该如何解决这个问题?

【问题讨论】:

  • 错误信息一目了然。该类没有默认构造函数,您正在尝试使用它。要么写一个,要么使用带参数的构造函数。
  • 我看不出class A 与这里有什么关系。能详细点吗?
  • @Borgleader 该错误只是不言自明的,因为您了解默认构造函数是什么以及它为什么需要可用。如果他们理解错误,他们就不会问这个问题。

标签: c++ visual-c++ c++11 mfc mfc-feature-pack


【解决方案1】:

类 X 没有可接受的默认构造函数 os 类 X 的方法 Close 中使用的某些类型没有默认构造函数。:) 您应该定义默认构造函数,或者使用为类定义的带有参数的构造函数。

我在一个名为 X 的类中有一个 方法 Close()。 ...我创建了一个 A 类的对象,我称之为 Close()

你还需要按顺序排列什么是X类和什么是A类。:)

【讨论】:

  • 我该如何解决这个问题?你没有回答这个问题,你只是在重新陈述错误消息所说的内容。
  • 不完全。例如,默认构造函数可以是私有的,而 Y 不是 X 的朋友。
  • Iteresting,我在 2 个多月内没有对我的答案投反对票。我反对你的和 BAM,我在几分钟内得到了两次反对票。多么奇怪的巧合。
  • @Borgleader 查看我对您投反对票的帖子的评论。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-22
  • 1970-01-01
  • 2017-08-15
  • 2011-12-22
  • 2016-01-22
  • 2014-06-23
相关资源
最近更新 更多