我正在構建一個MFC應用程序,其中位於選項卡中的按鈕(因此位於單獨的類中)必須訪問某些對象中的函數來控制電機和I/O。通過引用不同的對象傳遞對象
有一個控制器類,其中創建所有其他對象。控制器對象在主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