2012-08-09 69 views
1

我有3個類,可以說ClassA,ClassB和Validator。我想將classA和classB的一個變量傳遞給Validator,Validator會比較這些值,並返回一個字符串結果。我得到以下錯誤:錯誤:類函數錯誤C++

在 'validatorObject',其是非類類型 '驗證*'

main.cpp中的成員 'compareValues' 請求

cout << classAobject.compareValues(computer1->getValue(), classBobject->getValue()); 

validator.cpp

string Validator::compareValues(string classAvalue, string classBValue) { 
if (classAvalue == "R") { 
    if (classBvalue == "R") { 
     return "Equal"; 
    } 
} 
// More will go in this function - just want to get it working first 

}

validator.h

string compareValues(string classAvalue, string classBValue); 
+0

你在哪裏聲明'classAobject'? – Aesthete 2012-08-09 02:13:20

+0

我假定compareValues是在類Validator中聲明的(否則你有另一個不相關的問題) – 2012-08-09 02:17:57

回答

0

此錯誤出現,因爲你需要使用->運營商從指針訪問類成員類:cout << classAobject->compareValues(.....)

Foo->bar()相當於(*Foo).bar(),並Foo->baz相當於(*Foo).baz

+0

Validator必須比較來自classA和classB的值。 compareValues是Validator類的一個函數。 – CocaCola 2012-08-09 02:19:33

+0

我假設classAobject是'Validator'類型,否則問題必須在另一行 – 2012-08-09 02:20:07

+0

否,classAobject類型爲ClassA。我通過交換''來消除這個錯誤。對於' - >',但現在我有一個段錯誤:( – CocaCola 2012-08-09 02:45:25