C ++。如何将对象指针传递给函数中的成员函数

时间:2014-01-23 17:57:27

标签: c++ function parameter-passing member

很抱歉,如果问题本身似乎有点令人困惑,这是我的cpp文件的代码。

// main.cpp中

 #include <iostream>
 using namespace std;
 #include "Fraction.h"

 int unitTests(Fraction* f) {

 cout << "Fraction Simplifier Tests" << endl;
 cout << "=========================" << endl;

 // fill in code for unit tests


    int num, den;

    Fraction::set(4,16);

    cout << "Input:  " << num << "/" << den << endl;
    cout << "Output: " << num << "/" << den << endl;

 }

 int main() {
 Fraction fraction;
 bool passed;

 passed = unitTests(&fraction);

 if (passed)
     cout << "Passed All Tests" << endl;
 else
     cout << "Failed Tests" << endl;
 }

这是我的.h文件

class Fraction {
  int n, d;

public:
  void set(int n, int d);
  void simplify();
  void display() const;
  int numerator() const;
  int denominator() const;
};

我有另一个.cpp文件,我存储了我的成员函数的代码,但我没有任何问题所以我不会包含它。

基本上我得到的错误是我无法在没有对象的情况下从void Fraction :: set(int,int)调用成员函数。我不确定我会怎么做这个... 在我的混乱中,我已经将这一行改为Fraction :: fraction.set(4,16)。如果有人能够阐明如何在这里使用我的分数对象,那将非常感激。

1 个答案:

答案 0 :(得分:3)

这只是你的“调用成员函数”语法错误;其余的代码和问题都是重点。

当你写道:

Fraction::set(4,16);

你的意思是:

f->set(4,16);

还有其他问题,例如int num, den没有值,也没有做任何事情。