我知道在一般情况下按值传递、按引用传递或指针传递之间的区别。然而,我的问题是关于一个具有简单结构的容器的特殊情况。
假设有以下情况:
class image{
image()=default;
image(image const&)=default;
~image()=default;
int w;
int h;
uchar* data;
}
当传递该类的对象时,复制的仅是两个整数和指针而非全部数据。在这种情况下,是否有必要通过引用传递它?或者不通过引用传递它是否有目的?
引发这个问题的是我读到C++中迭代器
被设计成轻量级并可以按值传递。所以,我认为这个概念可能适用于表示容器实际数据的类而非数据本身。
uchar* data
是什么?我的意思是它是一个深度复制和清理的资源吗? - Jarod42data
,所以显然指针指向了类外部的资源。复制这样的指针可能是可以的。也许w
和h
是指向数据的特定部分,类似于string_view
? - Bo Persson