У меня возникают проблемы с определенной частью задания, требующей создать функцию, которая будет принимать и хранить числа в массиве Numbers (класс).Создание динамического массива с указателями класса
class Number {
public:
// Make a number with value 0
Number();
// Make a number with value val
Number(int val);
protected:
string value;
}
Number::Number() {
value = "0";
}
Number::Number(int val) {
value = to_string(val);
}
/*
* Ask user how many numbers they want entered and store the numbers in an array of Numbers.
* Set length parameter to # of numbers entered and return the array pointer to the caller.
*/
Number* getNumbersFromUser(int& length) {
cout << "How many number would you like to enter?";
cin >> length;
Number *numbers = new Number[length];
for (int i = 0; i < length; i++) {
cout << "Enter the number value ";
cin >> numbers[i];
}
}
int main() {
int length;
Number* numbers = getNumbersFromUser(length);
reverseAllNumbers(numbers, length);
cout << "All the numbers in reverse are:" << endl;
for (int i = 0; i < length; i++) {
numbers[i].print();
}
delete[] numbers;
cout<<endl;
Похоже, он специально просил, чтобы я использовать динамические массивы, но я не понимаю, как я могу иметь пользовательский ввод вещь типа Number, так как компилятор говорит, что это не разрешено. Пожалуйста, проигнорируйте функцию reverseAllNumbers
, я полагаю, что у меня это получилось.
EDIT: Я понимаю, что с моим кодом много чего-то странного. Использование строки и необходимость использования массива вместо вектора - все ограничения, которые были помещены в мое назначение.
Почему ты сохраняя число как 'std :: string'? Вы пытаетесь реализовать какой-то класс с большим целым числом для обработки значений, превышающих 64 бит? Если нет, тогда вы должны использовать 'int',' long long int' или '__int64' вместо' std :: string'. –
Это были ограничения, заданные для назначения, которые я использую для строки. Я понимаю, что с этим ограничением было бы намного легче. –
Для дальнейшего использования, когда вы задаете вопрос о том, что связано с ограничениями, укажите, каковы эти ограничения на самом деле, поэтому люди не тратят впустую свое время, пытаясь рассказать вам, как делать вещи, не соответствующие вашим ограничениям. –