0 / 0 / 0
Регистрация: 25.01.2013
Сообщений: 5
1

function overloading

31.08.2013, 17:27. Показов 1435. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
День добрый.
Что такое function overloading я понимаю, но вот не очень въезжаю, что требуется от меня в задании (учусь в универе прикладных наук по спец. IT)

Вот задание:

Write functions initialize_xy, that initializes two double variables that are passed as parameters. If we call the function in the form initialize_xy(&x, &y, 1.0, 2.0) it gives x a value 1.0 and y a value 2.0. If, on the other hand, we call function in the form initialize_xy(&x, &y) both variables get a value 0.0. You need to use function overloading to achieve this.

Write a short main function to test these functions (it only calls these two functions and displays the values of double variables after each call).

Remark. It is required that call in the test main function is exactly as given initialize_xy(&x, &y, 1.0, 2.0).

Если следовать заданию, то получается вот что -
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
 
double initialize_xy(double* x, double* y)
{
    std::cout << x << std::endl;
    std::cout << y << std::endl;
    return 0;
}
 
double initialize_xy(double *x, double *y, double , double)
{
    std::cout << x << std::endl;
    std::cout << y << std::endl;
    return 0;
}
 
using namespace std;
 
void main()
{
    double x, y;
 
    initialize_xy(&x, &y);
    
    initialize_xy(&x, &y, 1.0, 2.0);
    
}
Но это всё тупо показывает адрес и ничего более. И вообще это поинтеры. Что я не так понимаю?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.08.2013, 17:27
Ответы с готовыми решениями:

Overloading [] operators
Преект компилируется нормально. По заданию нужно чтобы было реализованно 2 версии оператора одна...

С концами запутался с operator overloading
Всем привет. Тема operator overloading - моё слабое место, очень хочу разобраться. Читаю всякие...

C:\Dev-Cpp\lib\vector.h `ostream' is neither function nor member function; cannot be declared friend
выкидывает C:\Dev-Cpp\lib\vector.h `ostream' is neither function nor member function; cannot be...

Многофайловая программа, ошибка: unresolved external symbol 'symbol' referenced in function 'function'
1 файл header #pragma once #ifndef LIST_1_ #define LIST_1_ template &lt;typename T&gt; class list...

7
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
31.08.2013, 17:31 2
Лучший ответ Сообщение было отмечено как решение

Решение

Чтобы показать значение нужно использовать *
Плюс, ты не инициализируешь числа.
Выводи числа в функции main.
1
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
31.08.2013, 17:38 3
В случае с двумя параметрами функция должна инициализировать x и y значением 0.
В функции с четырьмя параметрами переменные должны быть инициализированы значениями, переданными в функцию.
0
0 / 0 / 0
Регистрация: 25.01.2013
Сообщений: 5
31.08.2013, 17:45  [ТС] 4
Теперь показывает всё время 0. Значения не меняются.

Как сделать это -

If we call the function in the form initialize_xy(&x, &y, 1.0, 2.0) it gives x a value 1.0 and y a value 2.0.
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
31.08.2013, 17:46 5
В функции initialize_xy(&x, &y, 1.0, 2.0) присваиваешь переменным x и y значения переданные в качестве параметров (в данном примере 1 и 2 соответственно).
0
0 / 0 / 0
Регистрация: 25.01.2013
Сообщений: 5
31.08.2013, 17:48  [ТС] 6
Цитата Сообщение от castaway Посмотреть сообщение
В функции initialize_xy(&x, &y, 1.0, 2.0) присваиваешь переменным x и y значения переданные в качестве параметров (в данном примере 1 и 2 соответственно).
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
 
double initialize_xy(double* x, double* y)
{
    std::cout << *x << std::endl;
    std::cout << *y << std::endl;
    return 0;
}
 
double initialize_xy(double *x, double *y, double a, double b)
{
    *x = a;
    *y = b;
    std::cout << *x << std::endl;
    std::cout << *y << std::endl;
    return 0;
}
 
using namespace std;
 
void main()
{
    double x, y;
    x = 0;
    y = 0;
 
    initialize_xy(&x, &y);
    
    initialize_xy(&x, &y, 1.0, 2.0);
    
}
Так???
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
31.08.2013, 17:49 7
Цитата Сообщение от Maxims Посмотреть сообщение
Так???
Так. А в функции initialize_xy(double* x, double* y) присваиваешь переменным значение 0.
Да, еще из задания я понял, что вывод значений необходимо производить из main.
1
0 / 0 / 0
Регистрация: 25.01.2013
Сообщений: 5
31.08.2013, 17:50  [ТС] 8
А я то думал, что не так задание понял. Спасибо. Просто думал, что при передачи адреса, можно сразу же и поменять значение.

Точно. Вывод в main
0
31.08.2013, 17:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.08.2013, 17:50
Помогаю со студенческими работами здесь

Почему возникает ошибка "function returning function is not allowed"
Подключаю заголовочный файл .dll библиотеки, возникают ошибки #pragma once #include &lt;vector&gt;...

If a function throws an exception that is not listed in the function exception-specification list
Вопрос: if a function throws an exception that is not listed in the function...

Class member function to std::function
Всем привет. Вопрос: почему 43 строка не работает? #include &lt;functional&gt; #include &lt;iostream&gt;...

Overloading+Overriding
Дано : class A { boolean f(A a) { return true; } } class B extends A{ boolean f(A a)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru