我是 C++ 新手,并尝试编写缓存模拟器。CACHE 类的构造函数是
CACHE (int, int, int, int, CACHE *); //declare
在中main()
,我试图根据一些变量创建对象:
int main()
{
if ( L2_size == 0 ) //only one level of cache
{
CACHE L1(L1_size, blocksize, L1_assoc, inclusion, 0);
}
else //2 level of caches
{
CACHE L2(L2_size, blocksize, L2_assoc, inclusion, 0);
CACHE L1(L1_size, blocksize, L1_assoc, inclusion, &L2);
}
}
问题是我无法访问 L1 和 L2,因为它们的范围在 if...else 内。
此外,我尝试过使用 ? :运营商来实现这一点,仍然得到错误:
三元运算符不匹配。
有没有办法做到这一点?谢谢!