Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.05.2021, 20:49   #1
Farlep
Пользователь
 
Регистрация: 01.01.2021
Сообщений: 30
По умолчанию Помогите запустить функцию

Добрый день.

Пишу свой класс.

Но не могу передать функцию класса с параметрами в другой файл программы.

в menu.cpp

......
void MenuFun1() - не получается сюда передать Drob d1, Drob d2

......
соответственно
Drob::Sum(d1, d2); - про эти переменные файлу menu.cpp не известно. Но и не знаю как достучаться и вызвать эту функцию
.....

До вызова этой функции я успешно вызываю Drob::HandInit(); и успешно ввожу значения. Они сохраняются и в HandInit() я без проблем через cout могу просмотреть значения дроби d1, d2

НО я хочу передать эти значения в Drob::Sum и уже производить над ними вычисления . Но сейчас хотя бы просмотреть их через cout (в дальнейшем там будет другой функционал).

Подскажите, как передать мне правильно Drob d1, Drob d2 в Drob::Sum(??????) в файл menu.cpp

https://github.com/M0zgi/Drob_OOP

Последний раз редактировалось Farlep; 18.05.2021 в 21:18.
Farlep вне форума Ответить с цитированием
Старый 19.05.2021, 07:15   #2
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 947
По умолчанию

Farlep, всё кривое, но ладно, пусть так. Минимальные движения для исправления:

1)из файла drob.cpp убираем
Drob d1;
Drob d2;

2) в самом конце файла Header.h добавляем
Код:
inline Drob d1;
inline Drob d2;
3) не забываем включить в настройках компилятора стандарт C++11 ... C++17
Алексей1153 вне форума Ответить с цитированием
Старый 19.05.2021, 16:47   #3
Farlep
Пользователь
 
Регистрация: 01.01.2021
Сообщений: 30
По умолчанию

Добрый день, Алексей.

Цитата:
Farlep, всё кривое, но ладно, пусть так. Минимальные движения для исправления:
Ну так у меня первый день только как ООП пошло. И пол года до этого были основы. 3 пары раз в две недели.

Если укажите, что именно криво, буду благодарен. Так как хочется не только работающую программу написать, а еще и правильно и оптимизированно. С удовольствием приму к сведению.

И это только наброски.

Спасибо. Ваше предложенное решение работает. Сделал, как вы написали. Все заработало. И согласен, получается криво, Но я пошел другим путем.

Объект вызывает метод.

Переменные Drob объявил в menu.cpp

Далее

d1.HandInit();
d2.HandInit();
d = d.Sum(d1, d2);
d.print();

Перезалил на гите реализацию. Программе еще не написана. Но старт положен.
Farlep вне форума Ответить с цитированием
Старый 19.05.2021, 17:56   #4
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 947
По умолчанию

Farlep, видимо, имелось в виду следующее:

Код:
class Drob
{
private:
	int ch{};
	int zn{};
...
public:
	void Sum(const Drob& d1, const Drob& d2);
...
};

Код:
void Drob::Sum(const Drob& d1, const Drob& d2)
{
	ch = d1.ch + 2;
	zn = d2.zn + 3;	
}
Алексей1153 вне форума Ответить с цитированием
Старый 19.05.2021, 18:41   #5
Farlep
Пользователь
 
Регистрация: 01.01.2021
Сообщений: 30
По умолчанию

Цитата:
Сообщение от Алексей1153 Посмотреть сообщение
Farlep, видимо, имелось в виду следующее:

Код:
class Drob
{
private:
	int ch{};
	int zn{};
...
public:
	void Sum(const Drob& d1, const Drob& d2);
...
};

Код:
void Drob::Sum(const Drob& d1, const Drob& d2)
{
	ch = d1.ch + 2;
	zn = d2.zn + 3;	
}
Так это я лишь бы что то вывести и посмотреть применятся ли изменения.

Уже закончил писать суммирование дробей и сокращение дробей (НОД сделал с помощью Эвклида).

И печать отрицательных и положительных значений. Гит обновил.
Farlep вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите запустить приложение Kim chen in Общие вопросы C/C++ 0 02.03.2019 14:44
Запустить функцию WinApi razzner Общие вопросы C/C++ 0 23.10.2013 00:21
Как запустить функцию из другого скрипта? DENwanted JavaScript, Ajax 1 27.01.2013 10:08
Запустить функцию из javascript'a написанного создателями сайта, как? Sn0wSky JavaScript, Ajax 5 19.10.2012 02:43