C ++构造函数和调用函数

时间:2018-07-22 06:31:16

标签: c++ constructor overloading

我是C ++学习者...我创建了一个简单的程序,其中创建了一个构造函数和两个函数..我的问题是当我创建一个对象并调用一个函数时,构造函数不称为(edit:solved !) ..我又如何调用带有读取函数的add函数(以便在从用户那里获取输入后,程序会调用add函数并添加数字?)

编辑:已解决!构造函数现在可以按预期工作了,弄清楚了如何进行另一个函数调用:)

    #include<iostream>
using namespace std;
class class1
{
    int x,y;
    public:
    class1()
    {
        cout<<"object created\n";
    }
    void read()
    {
        cout<<"enter x";
        cin>>x;
        cout<<"enter y";
        cin>>y;
    }
    int add(int a, int b) //int add()
    {
        int sum=a+b; // int sum=x+y
        cout<<"\nsum=" << sum; // return sum
    }
};
int main()
{
    class1 obj1;
    obj1.read();
    onj1.add(); //this was missing and it didnt work prevuiously

}

3 个答案:

答案 0 :(得分:1)

现在,您的值存储在x和y中,您可以添加如下所示的值:

int add() {
  int sum=x+y;
  cout<<"\nsum=" << sum; 
}

并在读取方法后从main()调用此方法

obj1.add();

答案 1 :(得分:0)

也许这是部分问题,因为您的课程不是很有意义。您不需要将两个数字相加的类。但是鉴于您的代码,您将编写类似

obj1.add(10, 20);

输出应该是

sum=30

但是,我希望您真正想要发生的是将您先前输入的两个数字相加。在这种情况下,您需要重写方法以使用xy而不是ab

int add()
{
    int sum=x+y;
    cout<<"\nsum=" << sum;
}

然后

int main()
{
    class1 obj1;
    obj1.read();
    obj1.add();
}

此代码中不需要obj2

答案 2 :(得分:0)

add函数中缺少返回语句。只需添加一行   return sum;add函数的末尾