我想知道如何为需要大量内存的成员变量使用getters和setters方法。通常我会像下面这样:
class A
{
private:
BigObject object;
public:
BigObject getObject() const
{
return object;
}
void setObject(const BigObject& object)
{
this->object = object;
}
};
Run Code Online (Sandbox Code Playgroud)
但是,我相信此getter和setter将复制我不想要的BigObject。有一个更好的方法吗?
我想这样做,但是我在互联网上读到这不是一个好主意,因为如果使用不当,可能会导致分割错误:
BigObject& getObject()
{
return object
}
Run Code Online (Sandbox Code Playgroud) 我正在编写具有很多 const 变量(主要是整数和枚举)的代码,我想知道,是否有可以声明的最大变量数?我的想法是将这些 const 变量分配在堆栈上,这意味着我可以声明大约 1MB/4bytes = 250000 个变量(足够多),假设堆栈的大小为 1MB。我对么?
我的意思的一个简单的例子:
测试.cpp:
const unsigned int VECTOR_ID = 4;
const unsigned int MATRIX_ID = 3;
int main()
{
std::cout << VECTOR_ID << " : " << MATRIX_ID << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)