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

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

Войти
Регистрация
Восстановить пароль
 
kravam
быдлокодер
1695 / 882 / 45
Регистрация: 04.06.2008
Сообщений: 5,460
#1

Как переопределить функцию так, чтобы она не только могла принимать разные параметры, но и возвращать тоже разные? - C++

16.12.2011, 16:23. Просмотров 638. Ответов 1
Метки нет (Все метки)

То есть я считаю несправедливым, если такое проканывает:
C++
1
2
void f () {;}
void f (int) {;}
а такое нет:
C++
1
2
void f (int) {;}
int f () {return 6;}
Можно подумать, по возвращаемым значениям нельзя различить функции
++++++++++++++++++++++++++++++++++++++++++++++++++++

Просто у меня есть класс, так вот там есть несколько переопределённых конструкторов, которые принимают переменные разных типов. И есть функция-возвращатель результата. Так вот, я хочу чтобы как-нибудь в зависимости от того, какой конструкторы был вызван и была вызвана уникальная функция-возвращатель результата. А имена у функций возвращателей пусть будут одинаковые.

Экспериментировал на кошках, что называется. Пытался определить не функции, а поля класса с помощью директив условной компиляции, как-то так:
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
32
33
#include <windows.h>
#include <stdio.h>
 
 
class kl {
 
 public:
  kl();      
 
 #if x==1 
 int g;
 #endif
 
};
 
 
 
int main () {
 SetConsoleCP (1251);
 SetConsoleOutputCP (1251);
 
 kl k;
 
 //Ругается, что нет переменной g
 printf ("== %d", k.g);
 
 getchar ();
 return 0;
};
 
kl :: kl () {;
 #define x 1
}
Ничё не получилось

Добавлено через 2 минуты
Во втором примере должно быть так:
C++
1
2
void f () {;}
int f () {return 6;}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2011, 16:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как переопределить функцию так, чтобы она не только могла принимать разные параметры, но и возвращать тоже разные? (C++):

Какого типа std::endl ? Как сделать так, чтобы функция могла принимать endl в качестве аргумента? - C++
Что надо указать в прототипе функции, чтобы можно передавать std::endl в качестве аргумента? Уже 3 часа голову ломаю! :wall: Помогите,...

Как сделать так, чтобы функция rand() возвращала разные значения - C++
Добрый вечер, как можно в visual studio в цикле каждый раз задавать новые рандомные значения перменной, к примеру for(int i=0;i&lt;10;i++) ...

Как сделать так, чтобы две разные программы могли работать с одной и той же областью оперативной памяти? - C++
Собственно даже незнаю куда копать. Пробовал в одной программе вывести указатель на массив, а в другой указателю присвоить это значение...

Массив: Образовать новую последовательность чисел так, чтобы она тоже была неубывающей - C++
Помогиет реализовать программу на С++ или дайте советы по ее построению Даны две последовательности a1 ≤ a2 ≤ ... ≤ an и b1 ≤...

Выбрать из множества три разные точки так, чтобы внутри треугольника содержалось максимальное количество точек - C++
Задача такова : Из заданного множества точек на плоскости выбрать три разные точки А В С так, чтобы внутри треугольника АВС содержалось...

выбрать три разные точки А, В, С так, чтобы внутри треугольника АВС содержалось максимальное количество точек - C++
Задача такова : Из заданного множества точек на плоскости выбрать три разные точки А, В, С так, чтобы внутри треугольника АВС содержалось...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
16.12.2011, 19:43 #2
Цитата Сообщение от kravam Посмотреть сообщение
Можно подумать, по возвращаемым значениям нельзя различить функции
попробуй различить вызовы
C++
1
2
    f();
    f();
где какая из функций вызвана ?

Цитата Сообщение от kravam Посмотреть сообщение
//Ругается, что нет переменной g
потом что #define относится к файлу исходного кода, он не компилируется, а раскрывается до компиляции
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2011, 19:43
Привет! Вот еще темы с ответами:

Модернизируйте функцию factorial так, чтобы она не была рекурсивной - C++
Пример программы: // Вычисляющей сумму, разность и факториал // двух чисел #include &lt;iostream.h&gt; class MyInt { int i; ...

Как сделать, чтобы числа были разные? - C++
Есть код: #include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; using namespace std; int rolldice (void); int...

Надо, чтобы разные ссылки имели разные цвета и чтобы при наведении на них мышой также были разные цвета. - C# ASP.NET
День добрый. Что-то я никак понять не могу. Делаю сайт. Мне надо, чтобы разные ссылки имели разные цвета и чтобы при наведении на них...

Как сделать одну переменную так, чтобы она могла использоваться во всех других функциях - C#
У меня такой вопрос, как сделать одну переменную так, чтобы она могла использоваться во всех других функциях. пробовал через public static...


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

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

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