Перейти к содержанию
    

С++ взаимодействие объектов

8 часов назад, const сказал:

метод одного объекта не передать по указателю ф-ии в другой объект

Зато можно передать целиком ссылку на первый объект в метод другого класса, поскольку объект класса содержит адреса всех входящих в него методов:

class FirstClass{
public:
	void Foo(int in)
	{
		a = in;
	}
private:
	int a;
};

class OtherClass{
public:
	void Foo(FirstClass &in, int a)
	{
		in.Foo(a);
	}
};

int main(void)
{
	FirstClass k;
	OtherClass l;

	l.Foo(k, 5);

(имена методов в разных классах могут совпадать, это нормально). Метод в передаваемом объекте должен иметь public-доступ.

В С++ параметр  можно передавать не только по указателю *, но и по ссылке &. По сути, это одно и тоже, отличается только местом вычисления адреса и формой записи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12 hours ago, const said:

посоветуйте, пожалуйста, протокол для UART, какието распространенные

Да тот же Модбас, например. Кстати, под Qt есть и мастер, и слэйв. Для МК есть Free Modbus  и куча готовых портов под разные МК. ИМХО, если нет каких-то особых требований к параметрам обмена, то найти протокол проще и известней вряд ли получится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 4/30/2023 at 7:52 PM, const said:

а куда от этого деться если объекты работы с comport в разных фраемворках отличаются?

Либо выносить этот код в отдельный класс/функцию/файл и считать его реализацию (не интерфейс) платформо зависимым, либо вообще не пытаться делать 'чистую' С++ версию - она у вас не сейчас получилась.

On 4/30/2023 at 7:52 PM, const said:

Не вижу ничего страшного. Одна и та же строчка среди фраемворк-зависимого кода.

Вот это и страшно - даже одной строчки достаточно. Это значит, что вы не сможете просто так взять этот код и откомпилировать на другой фреймворк. Вам понадобится модификация исходного кода. Тут одна строчка, там одна строчка и т.д. И самое неприятное в этом, что где именно эти строчки и сколько их знаете только вы.

Если эти строчки вынести в отдельный файл проблема исчезнет - у вас есть ваша библиотека и отдельно платформо зависимый файл, который необходимо адаптировать при переносе на другую платформу.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...