gpt4 book ai didi

c++ - 在不使用 if...else 的情况下使用参数声明类对象

转载 作者:行者123 更新时间:2023-11-28 07:46:13 26 4
gpt4 key购买 nike

我是 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 内。

此外,我试过使用 ? : 运营商实现这个,仍然得到错误:

不匹配三元运算符。

有什么办法吗?谢谢!

最佳答案

可能是这样的:

    CACHE *L2 = 0;
CACHE *L1 = 0;


if (L2_size)
{
L2 = new CACHE(L2_size, blocksize, L2_assoc, inclusion, 0);
}
L1 = new CACHE(L1_size, blocksize, L1_assoc, inclusion, L2);

我相信还有其他的可能性。

关于c++ - 在不使用 if...else 的情况下使用参数声明类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14841318/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com