2015-09-02 4 views
0

Я работаю над заданием на C++, и у меня возникают трудности с вопросом. Нам дана функция, которая может принимать что угодно в качестве аргумента. Нам нужно вызвать эту функцию, UberFunction, как int, int *, int ** и char [].Вызов функции с различными типами

Мой код:

void CallUberFunctions() { 
    // There is a magic function, called "UberFunction" that is capable of taking 
    // anything for an argument. You need to call "UberFunction" with the 
    // following types: int, int* int** and char[] 
    // You also need to call "OtherUberFunction" in the namespace 
    // "uber_namespace" once, with no arguments. 
    UberFunction(42); 
    UberFunction((int*)42); 
    UberFunction((int**)42); 
    UberFunction((char[])'*'); 
} 

Здесь ошибка:

home/user/Desktop/cpp_refresher/cpp_refresher.cc:22:20: error: expected '(' for function-style cast or type construction

Я не могу получить обугленного [] тип, чтобы работать должным образом, мой синтаксис выше неправильно?

+0

Добро пожаловать в SO. Возможно, вам стоит опубликовать фактический код и какова фактическая ошибка. –

+0

'int Uberfunction (42);' инициализирует 'int' под названием' UberFunction' со значением 42, не так ли. Остальное тогда не имеет смысла. Вероятно, вас попросят создать несколько функций с разными перегруженными аргументами. Но вам нужно будет показать свой код ... –

+0

Пожалуйста, * отредактируйте * свое исходное сообщение, чтобы добавить код и убедитесь, что код правильно отформатирован. Вставка кода в раздел комментариев не одобряется. –

ответ

0

Попробуйте этот фрагмент:

const int value = 42; 
UberFunction(value); // int 
UberFunction(&value); // int * 
int * p_value = &value; 
UberFunction(&p_value); // int * * 
static const char text[] = "Hello World!\n"; 
UberFunction(text); // char [] 

Обратите внимание, что в приведенном выше примере, параметры меняются, и не возвращаемого значения.

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