【发布时间】:2014-12-26 20:07:06
【问题描述】:
我有一个 Foo 结构:
struct Foo
{
};
我有一个 Bar 的结构:
struct Bar
{
};
它们由另外 2 个结构处理,它们维护(添加/删除)每个结构的指针数组:
struct FooContainer
{
Foo** FooList;
// add(), remove() etc
};
struct BarContainer
{
Bar** BarList;
// add(), remove() etc
};
现在,我想要的是另一个名为 Baz 的结构,它(以一对多的方式)将 Foo 链接到 Baz。我不能(由于这里没有解释的原因)通过索引来引用它们,它必须通过指针/引用。
类似这样的:
struct Baz
{
Foo* foo;
Bar* bar;
};
如果我想为 Baz 添加一个构造函数来获取这些非常量指针,我该怎么做?
Baz 应该允许我更改它指向的 Foo 和 Bar 的哪个实例......所以它的指针不想成为 const。
我是否将指针作为 const 传递给构造函数,然后像传递对结构的引用一样对它们进行处理?然后我在尝试将非 const 指针的值设置为 const 指针时遇到问题。
我希望这个问题有意义...
编辑:我应该使用引用而不是指针吗?
【问题讨论】:
标签: c++ pointers struct parameter-passing