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

У меня класс B в классе A, а в классе B рекурсивная функция переопределения оператора "()", как её вызвать, не создавая явно объект класса B? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Тип данных "Anketa" - не получается ввести пол http://www.cyberforum.ru/cpp-beginners/thread315314.html
когда запускается программа в первом пункте, не получается ввести пол не подскажите в чем проблема? #include <iostream> #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <windows.h> #include <clocale> using namespace std;
C++ дан массив, пределить какой из массивов представляет собой «правильную» последовательность, то есть каждое следующее число больше предыдущего помогите пожалуйста разобраться. дан массив, пределить какой из массивов представляет собой «правильную» последовательность, то есть каждое следующее число больше предыдущего Именуйте темы осмысленно! Название темы должно максимально полно отражать её содержимое. http://www.cyberforum.ru/cpp-beginners/thread315309.html
ShellExecute - конфликтация типов C++
Разрешите вопрос о конфликтации типов при открытии папки. ShellExecute(0, "explore", sName, NULL, NULL, SW_SHOWNORMAL); где в sName хранится путь к папкам, AnsiString sName; Добавлено через 3 часа 17 минут upd... Добавлено через 1 час 8 минут upd....
График C++
Здравствуйте нужно зделать программу ,График функций Заранее спасибо
C++ Ошибка!!! http://www.cyberforum.ru/cpp-beginners/thread315243.html
List DeleteKey(List p, int x)//удаление по ключу { List q, a=p; /* while(p->key == x) { q = p; a=p=p->next; delete q; } */ while (p && p->next)
C++ Определить, содержатся ли в одномерном массиве одинаковые элементы Определить, содержатся ли в одномерном массиве одинаковые элементы. Помогите плз парни.. подробнее

Показать сообщение отдельно
kravam
быдлокодер
 Аватар для kravam
1513 / 873 / 44
Регистрация: 04.06.2008
Сообщений: 5,266
07.06.2011, 20:34     У меня класс B в классе A, а в классе B рекурсивная функция переопределения оператора "()", как её вызвать, не создавая явно объект класса B?
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
34
35
36
37
38
39
#include <windows.h>
#include <iostream>
using namespace std;
 
 
//Вот главный класс
class A{
 public:
  A (){};
  class B; 
};
 
 
//А это вот определение класса внутреннего или как его там.
//ВСя эта муть  затеяна с одной целью- рекурсивно вызвать operator()
//дабы она вернула 1, 2, 3, 4, 5
class B { 
 public: 
  B(): i(0){} 
 int operator()(int x){ 
  if (i< 5)
   operator()(x);
   return (++i+x);
  } 
 
  private: 
   int i ; 
}; 
 
 
 
int main() {
 A ob_1  ();
 //cout<< " "<< ob_1::B()(6)<< endl;
 //cout<< " "<< ob_1::B(6)<< endl;
 //cout<< " "<< ob_1.B()(6)<< endl;
 //cout<< " "<< ob_1.B(6)<< endl;
 system ("pause");
}
Вообще это не муть, а в этом есть здравый смысл. Если кто будет настаивать, я объясню. Пока же суть такая, примерно так:
C++
1
cout<< " "<< ob_1::()(6)<< endl;
Создать безымянный объект класса B, а в нём должна сразу вызваться рекурсивная функция "operator () (int x)" и вернуть... ну чё-нибудь, по задумке 10 (и вывести соответственно 10), но пока я с рекурсией не разбирался очень-то. Щас бы вызвать функцию для начала.

Добавлено через 2 минуты
Последний код читать:
C++
1
cout<< " "<< ob_1::B()(6)<< endl;
Исправленному верить!!!!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru