Вы не можете создать вектор абстрактного типа класса, потому что вы не можете создавать экземпляры абстрактного класса и контейнеры стандартной библиотеки C ++, такие как std :: vector store values (например, экземпляры). Если вы хотите это сделать, вам нужно будет создать вектор указателей на абстрактный тип класса.
Ваш рабочий стол не будет работать, потому что виртуальные функции (вот почему вы хотите, чтобы абстрактный класс был в первую очередь ) работают только при вызове через указатели или ссылки. Вы также не можете создавать векторы ссылок, поэтому это вторая причина, почему вы должны использовать вектор указателей.
Вы должны понимать, что C ++ и C # имеют очень мало общего. Если вы намереваетесь изучать C ++, вы должны думать об этом как о начале с нуля и прочитать хороший посвященный учебник на C ++, такой как Accelerated C ++ от Koenig и Moo.
ALTER TABLE `table` ADD INDEX `product_id` (`product_id`)
Никогда не сравнивайте целое число
с строками
в MySQL. Если id
равно int
, удалите кавычки.
Вы говорите, что у вас есть индекс, объяснение говорит об обратном. Однако, если у вас действительно есть индекс, вот как продолжить:
Если у вас есть индекс на столбце, и MySQL решает не использовать его, это может быть потому, что:
ANALYZE TABLE
. В случае (2) или (3), вы можете заставить MySQL использовать индекс с помощью index hint sytax, но если вы это сделаете, обязательно проведите несколько тестов, чтобы определить, действительно ли использование индекса по подсказке улучшает производительность.