|
2 / 2 / 0
Регистрация: 30.01.2013
Сообщений: 39
|
|
Вызов функций другого класса10.02.2013, 22:42. Показов 1563. Ответов 5
Метки нет (Все метки)
Здравствуйте!
Возможно, что-то подобное моей проблеме уже обсуждалось, но погуглив пару часов, ничего не нашел. Ситуация в следующем: хочу реализовать "длинную" арифметику. Не спрашивайте зачем и не говорите, что есть уже готовое. Интересно самому. Имеется класс (LongMath), в котором я хочу реализовать 4 арифметичесмкие действия (функции LongAdd,LongSub и т.д.).Ему на вход подается: matrix[i][j]=new LongMath(nCell[i][j]); matrix описан в хедере основного файла: LongMath *matrix[8][8]; а nCell[i][j] - объект типа CString. В LongMath определены несколько переменных, которые заполняются при вызове функции PrepareValue(): matrix[i][j]->PrepareValue(); А предполагаемая функция сложения имеет вид void LongAdd(LongMath *x1,LongMath *x2); В общем, все "типа" работает. После "заполняющего" цикла имеем 4 объекта класса LongMath (матрица 2х2). Но когда я захотел вызвать функцию сложения, начались сложности. Попытка лобового вызова LongAdd(matrix[0][0],matrix[0][0]) заканчивается закономерной ошибкой error C3861: 'LongAdd': identifier not found. строка LongMath::LongAdd(matrix[0][0],matrix[0][0]); дает error C2352: 'LongMath::LongAdd' : illegal call of non-static member function LongMath->LongAdd(matrix[0][0],matrix[0][0]); дает error C2143: syntax error : missing ';' before '->' После многих попыток (в теме я совсем зеленый) было найдено 2 потенциальных решения. 1. Описать функции в теле основной программы и вызывать их в виде LongAdd(matrix[0][0],matrix[0][0]). Смутило, что они к самой программе прямого отношения не имеют, и файл CMainWnd.cpp становится совсем уж некошерным. Хотел ведь всю "матиематику" с "длинными" числами вынести в отдельный класс. 2. Написал в теле CMainWnd LongMath *xxx; и вызываю сложение в виде xxx->LongAdd(matrix[0][0],matrix[0][0]);., но тогда при компиляции появляется предупреждение: warning C4700: uninitialized local variable 'xxx' used, что логично. Направьте плз на путь истиный...
0
|
|
| 10.02.2013, 22:42 | |
|
Ответы с готовыми решениями:
5
Ошибка при попытке использовать объект класса в определении другого класса
|
|
Неэпический
|
||||||||||
| 10.02.2013, 22:52 | ||||||||||
|
как-то так:
0
|
||||||||||
|
2 / 2 / 0
Регистрация: 30.01.2013
Сообщений: 39
|
|
| 10.02.2013, 23:01 [ТС] | |
|
Память естественно выделена.
Я хочу для двух объектов класса LongMath вызвать функцию, которая их бы сложила, но не знаю, как это сделать... Вариант с описанием функций в теле основной программы мне не нравится. Как перегрузить операторы и что это даст?
0
|
|
|
Неэпический
|
|||||||
| 10.02.2013, 23:18 | |||||||
0
|
|||||||
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
|||||||
| 10.02.2013, 23:21 | |||||||
|
тогда будет примерно так
0
|
|||||||
|
2 / 2 / 0
Регистрация: 30.01.2013
Сообщений: 39
|
|
| 11.02.2013, 00:57 [ТС] | |
|
Спасибо за идею, буду завтра грызть, о таком я, если честно, даже не знал
Если вдруг пойму, что не тяну, то вполне сойдет и matrix[0][0])->LongAdd(matrix[0][0],matrix[0][0], предложенный уважаемым Croessmah, потому как мне это и надо. Если так совсем айс?
0
|
|
| 11.02.2013, 00:57 | |
|
Помогаю со студенческими работами здесь
6
Вызов класса Вызов деструкторов членов класса Доступ к listbox из другого класса Обращение к переменной из другого класса
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|