Я новичок в C++ и попытаюсь написать имидж кэша. Конструктор класса CACHE являетсяОбъявить объект класса с параметрами без использования if ... else
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, поскольку их объем внутри, если ... else.
Кроме того, я пробовал использовать? : оператор для реализации этого, все еще получить ошибку:
нет соответствия для тернарного оператора.
Есть ли способ сделать это? Благодаря!
Включите пример использования 'L2' и' L1'. В качестве примера, если 'L2_size == 0', нет' L2', так что должно произойти с кодом, который пытается использовать 'L2'? Или это как раз о 'L1'? – Yakk
Вы посмотрели этот пост? http://stackoverflow.com/questions/1917718/are-multiple-conditional-operators-in-this-situation-a-good-idea –
если L2_size == 0, для L2-кеша нет объекта – ARGOS