将接口与实现分离不起作用c ++

时间:2017-10-16 15:54:43

标签: c++ object

嘿我试图从实现中使用Separating接口但是出错了。 不明白什么是错的。 这是我的计划 here's the error image

#include<iostream>
#include"name.h"
using namespace std;
int main()
{
    int x,y;
    cin>>x>>y;
    name n1(x,y);
    n1.getdata(x,y);
    n1.showdata();
}

现在这里是创建的头文件

#include<iostream>
using namespace std;
class name{
private:
    int a,b;
public:
    name(int x, int y);
    void getdata(int x, int y);
    int showdata();
};

&安培;这是课程的下一部分

#include"name.h"
using namespace std;
name::name(int x, int y)
{
    a=0;
    b=0;
}
void name::getdata(int x,int y)
{
    a=x;
    b=y;
}
void name::showdata()
{
    cout<<a+b;
}

1 个答案:

答案 0 :(得分:2)

您的代码存在许多问题。看起来在这种情况下最好的建议是阅读good C++ book

如果不在此,请按照严重性降序排列问题的简短列表:

  • name::showdata()声明签名与difinitioin不匹配:int showdata()void showdata()
  • 标头错过include guard
  • 标题中的
  • using namespacea code smell 99次中的100次
  • 标题不需要包含<iostream>,只需将其包含在实际文件中即可实际使用。

通过查看您获得的未定义引用,我还猜测name.cpp不是构建的。

我修复了一些提到的要点,只是让它构建:   Live Demo