|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
|||||||||||
В конструкторе вложенного класса инициализируется приватное поле. Потом вызывается функция-метод этого класса и выводит значение этого поля НО НЕ ТО!08.06.2011, 00:24. Показов 4848. Ответов 21
Метки нет (Все метки)
Друзья! Почему так?
ob_1.B_() и я с её помощью очень хочу увидеть ноль, но не вижу. Почему, друзья? Добавлено через 1 минуту Последний код читать: ob_1.B_()(6); Исправленному верить!!!
0
|
|||||||||||
| 08.06.2011, 00:24 | |
|
Ответы с готовыми решениями:
21
Можно ли сделать поле класса параметром функции-члена этого же класса? Как вызвать метод класса в другом методе этого же класса? Может ли метод класса возвращать экземпляр этого же класса? |
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
|
| 08.06.2011, 21:52 [ТС] | |
|
Мда уж... Мне в голову не приходило, что переменной static можно присвоить какое-то иное значение кроме начального, ни разу с этим не сталкивался. Просто я ни разу не сталкивался, с рекурсивной функцией, которая вызывается несколько раз. Просто вроде, а вот поди ж ты... Да ещё и старина Аммерааль подлил масла в огонь, а я некритически отнёсся к авторитету. Вот текст из его книги, сдуто с формата djvu.
++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++ Мы можем использовать алгоритм for_each для вызова функции с каждым из элементов последовательности в качестве аргумента. Вот программа, которая демонстрирует это: // for_each.cpp: Алгоритм for_each. #include <iostream> #include <algorithm> using namespace std; void display(int x){ static int i=0; cout << "a[" << i++ << "] = " << x << endl; } int main() { const int N = 4; int a[N] = {1234, 5432, 8943, 3346}; for_each(a, a+N, display); return 0; } Эта программа работает точно так же, как если бы мы заменили вызов for_each следующим оператором for. for (int *р=а; р != a+N; р++) display(*р); В любом случае программа выведет а[0] = 1234 а[1] = 5432 а[2] = 8943 а[3] = 3346 Функция display в этом примере обладает существенным недостатком: переменная i равна нулю только тогда, когда эта функция вызывается в первый раз. Например, еще один такой же вызов for_each в функции main приведет к ошибке, поскольку при повторном вызове функция display не начнет с i = 0. Мы можем решить эту проблему с помощью функционального объекта. Заменим функцию display следующим определением класса: class display { public: display(): i(0){) void operator()(int x) { cout << "a[n" << i++ <<"]=" << x << endl; } private: int i ; }; ++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++ Кошмар. ![]() Спасибо всем большое, если чё, я отпишусь тут ещё.
0
|
|
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 08.06.2011, 21:57 | |
|
kravam, функция действительно этим недостатком обладает))) Просто тут так не выйти из положения, вы точно знаете, что ваша функция вызовется пять раз, поэтому можно статическую переменную после этих пяти раз обнулить, а у автора неизвестно, с какими массивами будет работать функция. Вдруг в этот раз ей надо обработать массив из 5 элементов, а в следующий раз - из 7. Когда обнулять? Неизвестно. Поэтому здесь действительно нужен функтор.
0
|
|
| 08.06.2011, 21:57 | |
|
Как вызвать виртуальную функцию из дочернего класса, если она определена и вызывается в конструкторе РОДИТЕЛЬСКОГО класса?
Обращение к классу через поле этого класса Как вызвать метод вложенного класса в методе родительского класса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0»
https:/ / ibb. co/ NnkGpfMd
Представленная интегрированная схема описывает непрерывную нелинейную. . .
|
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы
### Аннотация
Представлено исследование по разработке агентной модели микоризной. . .
|
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики
Контекст
Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
|
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии
Введение
Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
|
|
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np
class PlantAgent:
def __init__(self, name, strategy, initial_biomass):
self. name = name
self. strategy = strategy # "greedy" (широколиственные) или. . .
|
сукцессия 9. Математика подлости: как растения предали грибных друзей
anaschu 27.06.2026
Статья 2. Глобальная фосфорная война: эволюционно-экономические механизмы распределения биомов Земли
Введение: Экологический рынок как игра с нулевой суммой
Традиционная экология долгое время. . .
|
сукцессия 8. Как я спорил с ИИ, которые - агенты растений и ненавистники грибов!
anaschu 27.06.2026
Статья 1. Хроники грибного восстания: как Сократов диалог разрушил академические догмы ИИ
Введение: Синдром «цифрового учебника»
Современные большие языковые модели (LLM) обладают колоссальным. . .
|
Главный вопрос моделирования сукцессии
anaschu 27.06.2026
главный вопрос.
Если эктомикориза лучше добывает недоступный фосфор. И ее масса максимальна из всех.
А широколиственный лес тоже имеет самую крутую биомассу.
То почему не возникло их симбиоза? Это. . .
|