我有一堂课需要了解一些大型数据结构。因此,我创建了一个构造函数,它接受对该大型数据结构的引用并使用它来初始化成员变量,如下所示:
class Foo {
public:
BigStruct m_bigstruct;
Foo(BigStruct &inBigStruct) : m_bigstruct(inBigStruct) {}
};
这似乎复制了inBigStruct
,但我不想浪费这些资源,因为BigStruct
s 很大。是否有更标准的方法inBigStruct
可以使 Foo 的内容不复制而可用?我知道我可以这样做:
class Foo {
public:
BigStruct* m_bigstruct;
Foo(BigStruct* inBigStruct) : m_bigstruct(inBigStruct) {}
};
这是无需复制即可inBigStruct
使用的常用方法吗?Foo
如果不是,那是什么?