2015-11-12 2 views
1

Скажем, у меня есть функция инлайн:Вызов внешних функций в встроенных функций

// equality operator where left operand is a long 
inline bool operator==(long num, BigInt const& val) { 
    return compare(num, val) == 0; 
} 

где «сравнить» определяется в BigInt.h где встраиваемая функция есть. Как я могу использовать сравнение или могу ли я его использовать?

BigInt.h

class BigInt { 

public: 

//code 

int BigInt::compare(long num, BigInt const& other) const; 

//code 

}; 

// equality operator where left operand is a long 
inline bool operator==(long num, BigInt const& val) { 
    return compare(num, val) == 0; 
} 
+0

Какая проблема вы видите? Вы получаете ошибку компиляции? Если это так, пожалуйста, включите в свой вопрос какие-либо фактические сообщения об ошибках. –

+0

Это просто говорит, что сравнение не определено. – sanic

+0

Вы пробовали, включая BigInt.h? –

ответ

2

compare является функция, вы должны изменить его называть как

// equality operator where left operand is a long 
inline bool operator==(long num, BigInt const& val) { 
    return val.compare(num, val) == 0; 
} 

И я до сих пор сомнения, почему compare функция член. Если это не имеет никакого отношения к текущему объекту, это должна быть просто нормальная функция или статическая функция-член.

Смежные вопросы