gpt4 book ai didi

c++ - 在 C++ 中通过引用将地址传递给类并从那里传递给它的 "child-class"

转载 作者:行者123 更新时间:2023-11-28 07:37:01 24 4
gpt4 key购买 nike

“指针”保存着“Int”的地址。我想通过引用将该地址传递给我给定的类:

class N {
public:
N(int &pPointer){
std::cout << "Address: " << &(pPointer) <<" \n";
}
};
class M {
public:
M(int &pPointer):n(pPointer) {
std::cout << "Address: " << &pPointer <<" \n";
}
private:
N n;
};

int main () {
int Int = 5;
int *pointer = &Int;
std::cout << "Address: " << pointer <<" \n";
M m(*pointer);
return 0;
}

这是一个好的做法吗(因为我有点使用对取消引用的指针的引用)?或者它绝对可怕?我只是想在这里避免指点。 (虽然一开始我被迫使用“*指针”。)

最佳答案

完全可以通过引用传递而不是通过指针传递以便稍后使用 abject,因为只要您知道您使用的指针是有效的。这允许您跳过 nullptr 检查,因为引用不能为 null。
但是,如果您存储一个引用,您将无法将被引用的对象替换为另一个对象。但是你可以用一个指针来做到这一点。
稍后您可以获取引用对象的地址,但您真的认为您需要这样做吗?因为您可以改用引用

关于c++ - 在 C++ 中通过引用将地址传递给类并从那里传递给它的 "child-class",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16604374/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com