|
2 / 2 / 0
Регистрация: 30.01.2013
Сообщений: 39
|
|
Вызов функций другого класса10.02.2013, 22:42. Показов 1547. Ответов 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
|
|||||||
|
Модератор
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,857
|
|||||||
| 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 из другого класса Обращение к переменной из другого класса
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи
и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|