Я создаю приложение MFC, где кнопки, расположенные на вкладке и, следовательно, в отдельном классе, должны иметь доступ к функциям в определенных объектах для управления двигателями и ввода-вывода.Пропустить объект по ссылке на другой объект
Существует один класс контроллера, в котором созданы все остальные объекты. Объект контроллера создается в основном коде MFC. Таким образом, все функции можно вызвать через контроллер, используя controller.object.function
.
Указанные выше кнопки расположены в другом классе и не могут получить доступ к этим функциям по умолчанию, поэтому мне необходимо предоставить им доступ. Я написал этот тестовый проект и хотел бы получить обратную связь о том, как передать объект по ссылке.
Считается ли это правильным способом передачи объекта по ссылке?
#include <iostream>
class ClassA;
class ClassB;
class ClassB {
public:
ClassB();
void addOne();
int b;
};
ClassB::ClassB() :
b(0) {
}
void ClassB::addOne() {
b = b + 1;
}
class ClassA {
public:
ClassA(ClassB & B_ref);
void addOneToB();
private:
ClassB & B;
};
ClassA::ClassA(ClassB & B_ref) :
B(B_ref) {
}
void ClassA::addOneToB() {
B.addOne();
}
int main() {
ClassB B;
B.addOne();
std::cout << B.b << "\n";
ClassA A(B);
A.addOneToB();
std::cout << B.b << "\n";
system("pause");
}
Обратите внимание, что поскольку у вас есть ссылочные элементы, 'A' больше не может быть скопирован или перемещен. – NathanOliver
@NathanOliver 'A' по-прежнему можно копировать, его нельзя назначить. –
@ FrançoisAndrieux Упс. Забыл назначаемую часть. Благодарю. – NathanOliver