Класи і масиви. Ініціалізація масивів значеннями даних з об’єктів класу. Приклади
Зміст
- 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 значеннями, які повертають public методи класу 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 - об'єм кулі