Классы и массивы. Инициализация массивов значениями данных из объектов класса. Примеры
Содержание
- 1. Инициализация массива значениями, которые есть членами данных объекта. Пример
- 2. Инициализация массива значениями, которые возвращают объекты класса. Пример
- Связанные темы
Поиск на других ресурсах:
1. Инициализация массива значениями, которые есть членами данных объекта. Пример
Возможны случаи, когда нужно объединить переменные, которые являются членами объекта класса в массив. В нижеследующем примере инициализируется массив, который в качестве инициализаторов использует члены-данных объекта. На момент объявления, члены-данных объекта должны иметь какие то значения.
Пример определяет класс Radius, в котором объявляются:
- внутренняя private переменная radius;
- внутренний private метод CalcValues(), заполняющий значениями public-переменные length, area, volume;
- общедоступные (public) внутренние переменные класса length, area, volume, содержащие соответствующие значения длины окружности, площади круга и объема шара для радиуса r;
- конструкторы класса;
- методы доступа GetR() SetR().
Листинг класса следующий:
// класс, реализующий величину радиуса геометрической фигуры class Radius { double radius; // переменная, определяющая радиус // внутренний метод, формирующий значения переменных length, area, volume void CalcValues(void) { const double pi = 3.141592653589; length = 2 * pi * radius; area = pi * radius * radius; volume = 4.0/3.0 * pi * radius * radius * radius; } public: double length; // длина окружности double area; // площадь круга double volume; // объем шара // конструкторы Radius() { radius = 1; CalcValues(); // заполнить переменные length, area, volume } Radius(double radius) { this->radius = radius; CalcValues(); // заполнить переменные length, area, volume } // методы доступа int GetR(void) { return radius; } void SetR(double radius) { this->radius = radius; CalcValues(); // заполнить переменные length, area, volume } };
Использование класса в функции main() или другой функции:
Radius r(3); // объект r класса Radius // инициализация массива V значениями, которые есть членами данных объекта r double V[] = { r.length, r.area, r.volume }; double x; x = V[0]; // x = 18.8496 - длина окружности x = V[1]; // x = 28.2743 - площадь круга x = V[2]; // x = 113.097 - объем шара
2. Инициализация массива значениями, которые возвращают объекты класса. Пример
Элементы массива могут быть инициализированы значениями, которые возвращают методы некоторого класса. В примере демонстрируется инициализация массива V значениями, которые возвращают методы класса Radius: Length(), Area(), Volume().
Объявление класса имеет вид;
// класс, который реализует величину радиуса некоторой геометрической фигуры class Radius { double radius; // переменная, определяющая радиус public: double Length() { return (2 * 3.1415 * radius); } double Area() { return (3.1415 * radius * radius); } double Volume() { return (4.0/3.0 * 3.1415 * radius * radius * radius); } // конструкторы Radius() { radius = 1; } Radius(double radius) { this->radius = radius; } // методы доступа int GetR(void) { return radius; } void SetR(double radius) { this->radius = radius; } };
Использование класса в некотором методе
Radius r(3); // объект r класса Radius // инициализация массива V значениями, которые возвращают методы объекта класса r double V[] = { r.Length(), r.Area(), r.Volume() }; double x; x = V[0]; // x = 18.8496 - длина окружности x = V[1]; // x = 28.2743 - площадь круга x = V[2]; // x = 113.097 - объем шара