Задать вопрос
@EVOSandru6

Как в С++ объявить массив объектов?

Всем привет!

Есть 2 метода в классе, один возращает кол-во записей в таблице:

int Department::getRowsCount(){
        ....
	int count = 20;
	return count;
}


И метод для формирования массива объектов (3 варианта, рабочий только последний):

void Department::getAll(){

        // Error: Е2313 Constant expression required
	// int rowsCount = this->getRowsCount();
	// Department depArray[rowsCount];

        // Е2313 Constant expression required
        // const int rowsCount = this->getRowsCount();
	// Department depArray[rowsCount];

        // только так компилируется дальше
        const int rowsCount = 15;
        Department depArray[rowsCount];
       ... 
}


Естественно мне надо задавать кол-во элементов в массиве исходя их кол-ва элементов в базе данных. Как быть с этой константой?
  • Вопрос задан
  • 368 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 2
@vilgeforce
Раздолбай и программист
Можете использовать оператор new[], можете - std::vector/std::list и помещать в него новосозданные объекты.
Ответ написан
Если Ваш метод должен возвращать константу, то можно попробовать constexpr функцию.

#include <iostream>

constexpr int func()
{
    return 10;
}

int main() {
    int v[func()];
    std::cout<<sizeof(v);
    return 0;
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
thestump
@thestump
программист PHP
Что если применить #define для определения константы?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы