任何人都可以帮助我理解这个错误? “隐含声明的'类的定义'classA :: classA()'” [英] Can anyone help me understand this error? "definition of implicitly-declared ‘classA::classA()’"

查看:792
本文介绍了任何人都可以帮助我理解这个错误? “隐含声明的'类的定义'classA :: classA()'”的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

代码如下:

#include <cstdlib>
#include <iostream>
using namespace std;

class classA
{                   
      protected:
                void setX(int a);

      private:
              int p;
};

classA:: classA()
{                      //error here.
 p = 0;
}

void classA:: setX(int a)
{
 p = a;    
}

int main()
{   
    system("PAUSE");
    return EXIT_SUCCESS;
}


推荐答案

您忘记声明构造函数在类定义中。在类的 public 部分中声明它(如果您希望客户端使用它创建实例):

You forgot to declare the constructor in the class definition. Declare it in public section of the class (if you want clients to create instance using it):

class classA
{ 
      public: 
              classA();    // you forgot this!       
      protected:
                void setX(int a);

      private:
              int p;
};

现在你可以把它的定义写在你已经做过的类之外。

Now you can write its definition outside the class which you've already done.

这篇关于任何人都可以帮助我理解这个错误? “隐含声明的'类的定义'classA :: classA()'”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆