【发布时间】:2013-02-12 20:35:37
【问题描述】:
我是 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 内。
此外,我尝试过使用 ? : 运营商实现这一点,仍然得到错误:
三元运算符不匹配。
有没有办法做到这一点?谢谢!
【问题讨论】:
-
包括一个如何使用
L2和L1的示例。例如,如果L2_size == 0,则没有L2,那么尝试使用L2的代码会发生什么?或者这只是关于L1? -
你看过这篇文章了吗? stackoverflow.com/questions/1917718/…
-
如果L2_size == 0,则没有L2缓存的对象
标签: c++