gpt4 book ai didi

c++ - 可选引用实现

转载 作者:太空狗 更新时间:2023-10-29 23:41:58 25 4
gpt4 key购买 nike

我在这里遇到一个问题,我不确定如何处理它。首先我是初学者。我有一个类的两个构造函数和声明的两个引用变量,但我不能在一个构造函数中同时使用这两个引用。如果调用 cons1(),我需要使用 ref1,如果调用 cons2,我需要使用 ref2。问题在于当调用 cons2 时我应该将 ref1 引用到什么以及类似地当调用 cons1 时 ref2 应该引用什么。我不确定如何初始化这些引用。它不能为 NULL。我不确定指出一些无效的实现是否是个好主意。应该是?这甚至是一个选择吗?在c++中如何处理这样的问题?

// A.cpp
Class A
A(Object1& a) : ref1(a) {} - here how should ref2 be handled?
A(Object2& b) : ref2(b) {}- here what should ref1 reference?

// A.h
Object1& ref1
Object2& ref2

我需要在这里使用引用。我知道我们可以使用指针而不是引用,但问题是特定于使用引用的。

最佳答案

既然 ref1 和 ref2 是可选的(不是必需的),那么最好使用指针而不是引用:

class A
{
public:
A(Object1& a) : ref1(&a), ref2(NULL) {}
A(Object2& b) : ref1(NULL),ref2(&b) {}

Object1 *ref1;
Object2 *ref2;
};

但稍后您必须检查 ref1 和 ref2 是否为 NULL。

关于c++ - 可选引用实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6726163/

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