【问题标题】:Class accessor and mutator functions in c++C++ 中的类访问器和修改器函数
【发布时间】:2016-03-31 18:51:43
【问题描述】:

我一直在尝试编写一个从用户那里获取整数值的程序。整数值将由 mutator 函数更改,另一个函数将打印在屏幕上。谢谢你的帮助。这是我到现在为止的努力:

#include <iostream>

using namespace std;

class bank 
{
 public:

  bank();

  void output(ostream& out)
  {
    out<<account;
  }

  int revised(int acc)
  {
  acc=acc+acc*2;
  }

  void set_account(int a)
  {
  account = a;
  }

  int get_account()
  {
  return account;   
  }


private:

int account;

};



int main()
{
bank obj1;
int i;
cout << "Enter your money";
cin>>i;

obj1.set_account(i);
obj1.output(cout);

return 0;
}

【问题讨论】:

  • 您的具体问题是什么?请包括一个明确的问题,以便您得到明确的答案。例如,您是否遇到需要帮助的错误,或者您的程序是否运行不正确?
  • 你有什么问题?您的代码根本不起作用吗?它是否部分工作?你期望看到什么输出?你得到什么输出?
  • 我的代码在函数部分出现错误。我在类中声明了没有错误的原型。但是当读取类的外部时会出错。

标签: c++ function class


【解决方案1】:

不要将参数类型传递给函数:obj.set_account(i)obj.output(cout) 就足够了。请注意,我通过了cout 而不是out,因为out 没有在main() 中定义。请记住,函数定义/声明中的参数名称与您实际传递的参数名称无关。

您还缺少函数定义的返回类型。

此外,您应该通过引用而不是通过值传递 ostream,因为 ostream 没有定义复制 ctor。

【讨论】:

  • 非常感谢。我用你的建议编辑了我的问题。但是现在它给出了一个错误: undefined reference to bank::bank
  • 您已经声明了 bank() 构造函数,但没有定义它。试试bank(){} 或者完全删除声明,让编译器为你生成一个默认的ctor
  • 非常感谢我终于明白了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多