2014-01-23 60 views
-1

對不起,如果問題本身似乎有點混淆,這是我的cpp文件的代碼。C++。如何將對象指針傳遞到函數內的成員函數

//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)。如果任何人都可以闡明我如何在這裏使用我的分數對象,我會非常感激。

回答

3

這只是你的「調用成員函數」的語法是錯誤的;代碼的其餘部分和問題都是重點。

當你寫道:

Fraction::set(4,16); 

您的意思是:

f->set(4,16); 

還有其他的問題,比如你的int num, den有沒有價值,不要做任何事情。

+0

沒關係......你是對的,非常感謝,所以當定時器用完時會選擇正確的答案 – Mykalz