Мне нужно создать массив строк, в котором я могу хранить 3 или 5 слов, например {"банан, персик, груша"} или {"апельсин", "груша", "силантро", "имбирь", " mandarine "}.
Я не понимаю, нужно ли мне создавать массив строковых указателей (чтобы динамически выделять память в зависимости от размера массива-3 или 5) или просто иметь массив строк с статически выделенная память 5. И как ее инициализировать / установить значение null / использовать в конструкторах.
Мне не разрешено использовать вектор. Когда я объявил массив размером 5, проблема началась в конструкторе по умолчанию. Я не знаю, как установить для него значение null ... // string multiple_fruits [5] // multiple_fruits [] = {nullptr,};
Итак, я использую здесь массив строковых указателей, есть ли лучший способ? Что я делаю не так?? HAAAALP
//.h file
class Fruit {
char* single_fruit;
string* multiple_fruits;
int num_Fruits;
};
//.cpp file
Fruit::Fruit() {
single_fruit = nullptr;
multiple_fruits = nullptr;
num_Fruits = 0;
}
Fruit::Fruit(const char* singlefruit, string* multiplefruits, int numFruits) {
single_fruit = new char[strlen(singlefruit) + 1];
strcpy_s(single_fruit, strlen(singlefruit) + 1, singlefruit);
multiple_fruits = new string[numFruits];
for (int i = 0; i < numFruits; i++) {
multiple_fruits[i] = multiplefruits[i];
}
num_fruits = numFruits;
}
int main() {
Fruit A;
A("apple", {"banana", "peach", "pear"}, 3)
Fruit B;
B("lemon", {"orange", "pear", "silantro", "ginger", "mandarine"}, 5);
return 0;
}