функция перегрузки неоднозначности в переполнении стека

У меня есть две функции с подписями, как показано ниже.

void overloading(int, int)

а также

void overloading(int, A *ptr, int)

где А класс.

Когда я компилирую в gcc 3.4. Моя основная функция имеет следующий вызов.

A *pointer = new A();

overloading(10, pointer,20);

Я получаю ошибку, которая говорит

"Invalid conversion from A * to int"

Я делаю что-то неправильно или компилятор не может определить правильную перегруженную функцию?

0

Решение

Ваша проблема в том, что в месте, где вы можете позвонить overloading Вы не объявили трехпараметрическую версию функции, поэтому компилятор видит только (int, int) версия. Вы даже можете доказать это, предварительно обработав исходный файл (например, g++ -E).

Просто убедитесь, что все основные заголовки включены в ваш основной файл.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]