Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
#1

Не понятный глюк вызова перегруженной функции - C++

03.11.2013, 08:23. Просмотров 383. Ответов 10
Метки нет (Все метки)

C++
1
2
3
void f  (std::wfstream&, bool, const char*, size_t , size_t);
void f  (std::wfstream&, int, const char*, size_t , size_t);
void f  (std::wfstream&, enum, const char*, size_t , size_t);
, с фактическим параметром-явной константой вызывается вторая функция, а нужна третья. И прототипы, и сами функции имеются в наличии.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2013, 08:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не понятный глюк вызова перегруженной функции (C++):

Не понятный глюк с cout - C++
Дня доброго Есть небольшая програмулина #include<iostream> #include<string> #include<iomanip> using namespace std; class...

Ввод данных в функции конструктора и использование их в перегруженной функции - C++
Вот собственно код, как его исправить, что бы не было ошибки. Пишет что переменные не объявлены. Это вполне естественно. Но как сделать...

Создание перегруженной функции - C++
Создайте перегруженные функции для вычисления абсолютной величины числа. Одна функция работает с числами типа int, другая с типом double....

Сравнение строк в перегруженной функции - C++
Здравствуйте! есть перегруження функция Block* BlocksList::Find(string text) const { BlockNode * pNode = 0; int...

Неоднозначый вызов перегруженной функции - C++
#include "stdafx.h" #include <iostream> #include <cmath> using namespace std; int _tmain(int argc, _TCHAR* argv) { float...

Неоднозначный вызов перегруженной функции - C++
Ввести с клавиатуры число n. Динамически выделить память для массива целых чисел размером n. Заполнить массив данными с клавиатуры....

10
chedman
81 / 80 / 2
Регистрация: 30.10.2013
Сообщений: 251
03.11.2013, 08:32 #2
вроде enum - это тот же int

Добавлено через 1 минуту
может typedef использовать для более тонкой настройки
0
0x10
2482 / 1657 / 249
Регистрация: 24.11.2012
Сообщений: 4,126
03.11.2013, 08:39 #3
Просто на всякий случай.
Цитата Сообщение от taras atavin Посмотреть сообщение
с фактическим параметром-явной константой
"Явная константа" - это так?
C++
1
2
3
4
5
6
7
8
enum State { On, Off };
 
void f(State);
void f(int);
 
// ...
 
f(On);
0
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
03.11.2013, 09:16  [ТС] #4
Константы бывают явные и именованные, именованные декларируются и имеют имена, потому так и называются, а явные - это всё остальное. Например, в
C++
1
for (i=0; i<10; ++i)
ноль и десятка - явные константы,
Pascal
1
2
3
4
5
const n=10;
var i:integer;
begin
       for i:=0 to n do;
end.
(не знаю, есть ли плюсовый аналог) 0 - явная константа, n - именованная, 10 в декларации n - явная констант. В
C++
1
char a='b';
'b' - явная константа.

Добавлено через 50 секунд
Цитата Сообщение от 0x10 Посмотреть сообщение
enum State { On, Off };
void f(State);
void f(int);
// ...
f(On);
Приблизительно, только у меня тип другой. Так как вызвать третью функцию, не заводя для этого переменную?

Добавлено через 2 минуты
Цитата Сообщение от chedman Посмотреть сообщение
вроде enum - это тот же int
Допустим. Но ведь мессаги о повторе прототипа не было, значит он только основан на инте, но не инт.
0
0x10
2482 / 1657 / 249
Регистрация: 24.11.2012
Сообщений: 4,126
03.11.2013, 09:28 #5
В общем, реквестирую sscce, ибо у меня не вроспроизводится.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
enum State {On, Off};
 
void f(bool) { std::cout << "bool" << std::endl; }
void f(int) { std::cout << "int" << std::endl; }
void f(State) { std::cout << "enum" << std::endl; }
 
int main()
{
    f(On);
    f(11);
}
Вывод:
enum
int
0
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
03.11.2013, 09:41  [ТС] #6
Глюк пофиксен, оказалось, что кодоблоки умудрились не сохранить изменения в файле прототипов.
0
MrGluck
03.11.2013, 09:50
  #7

Не по теме:

Цитата Сообщение от taras atavin Посмотреть сообщение
Глюк пофиксен
Я буду жить не смотря ни на что!

0
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
03.11.2013, 09:56  [ТС] #8
MrGluck, я не Вас имел ввиду. И не композитора Глюка.
0
gray_fox
What a waste!
1522 / 1227 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
03.11.2013, 13:52 #9
"явная константа" - это литерал.
0
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
04.11.2013, 11:42  [ТС] #10
Литералы представляют собой константы, непосредственно включаемые в текст программы в отличие от прочих данных
То есть литерал - вид константы. Так почему бы этому термину не иметь составной синоним со словом "константа"?
0
MrGluck
Модератор
Эксперт CЭксперт С++
7497 / 4613 / 694
Регистрация: 29.11.2010
Сообщений: 12,631
04.11.2013, 16:25 #11
Потому что "явная константа" можно понимать как угодно, а литерал - однобоко.
0
04.11.2013, 16:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.11.2013, 16:25
Привет! Вот еще темы с ответами:

Неоднозначный вызов перегруженной функции - C++
#include &quot;stdafx.h&quot; #include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;Windows.h&gt; #include &lt;iomanip&gt; #include...

Pow: нет перегруженной функции - C++
Ошибка 2 error C2661: pow: нет перегруженной функции, принимающей 1 аргументов C:\Users\student\Desktop\Языки программирования\zada4a...

Найти ошибку в перегруженной функции - C++
Почему-то произведению присваивется размер массива. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; #include...

Pow: неоднозначный вызов перегруженной функции - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; #define eps 10E-3 using...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.