Например, у меня есть класс под названием Apple и другой класс, называемый Basket, и я хочу, чтобы класс Basket имел частный атрибут, являющийся массивом объектов Apple.В C++ возможно ли для класса иметь массив, содержащий объекты другого класса?
Мой код:
basket.h
#include <iostream>
#include <string>
#include <apple.h>
// defin basket
class Basket {
//class attrs; private
private:
std::string name;
// I want Basket objects to have an array of Apple objects
// How do I do this?
Apple [];
public: //class function
Basket(std::string); //constructor
std::string get_name() {return (name);}
};
apple.h
#include <iostream>
#include <string>
// defin apple
class Apple {
//class attrs; private
private:
std::string name;
public: //class function
Apple(std::string); //constructor
std::string get_name() {return (name);}
};
попробуйте 'std :: vector' member –
Просто предложение: если вы не знаете, как объявить массив, как его использовать, какова его семантика и различные способы поведения, которые будут отличаться от того, что вы ожидаете (особенно, когда вы передаете его в качестве параламента), вы должны узнать это прежде, чем заниматься классами.Кроме того, как упоминалось в предыдущем комментарии, вам лучше использовать std :: vector вместо массива. –