|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.03.2021, 09:22 | #1 |
Пользователь
Регистрация: 18.03.2021
Сообщений: 26
|
переделать публичные методы в приватные
Я написал код,который создает класс для описания треугольника и вычисляет его площадь,периметр,вид,углы.И теперь мне нужны сделать все методы приватными(а они у меня публичные),но я незнаю как это осуществить.Помогите!
#include <iostream> #include <cmath> const double pi = 3.14159265358979323846; double radToDeg(double x) { return x * (180 / pi); } double sqr(double x) { return pow(x, 2); } //------------ class praktika { public: praktika(double a, double b, double c) { a_ = a; b_ = b; c_ = c; } double GetA() const; double GetB() const; double GetC() const; void SetA(double a); void SetB(double v); void SetC(double c); void vidtreygolnika(); double ploshad() const; double Alpha() const; double Beta() const; double Gamma() const; double Perimeter() const; bool IsValid() const; private: double a_; double b_; double c_; }; double praktika::GetA() const { return a_; } double praktika::GetB() const { return b_; } double praktika::GetC() const { return c_; } void praktika::SetA(double a) { a_ = a; } void praktika::SetB(double b) { b_ = b; } void praktika::SetC(double c) { c_ = c; } double praktika::Alpha() const { return radToDeg(acos((sqr(b_) + sqr(c_) - sqr(a_)) / (2 * b_ * c_))); } double praktika::Beta() const { return radToDeg(acos((sqr(a_) + sqr(c_) - sqr(b_)) / (2 * a_ * c_))); } double praktika::Gamma() const { return radToDeg(acos((sqr(a_) + sqr(b_) - sqr(c_)) / (2 * a_ * b_))); } double praktika:loshad() const { const double p = Perimeter() / 2; return sqrt(p * (p - a_) * (p - b_) * (p - c_)); } double praktika::Perimeter() const { return a_ + b_ + c_; } bool praktika::IsValid() const { return (a_ < b_ + c_) && (b_ < c_ + a_) && (c_ < a_ + b_); } void praktika::vidtreygolnika() { if ((a_ == 90) || (b_ == 90) || (c_ == 90)) std::cout << "Треугольник прямоугольный" << std::endl; if ((a_ < 90) && (b_ < 90) && (c_ < 90)) std::cout << "Треугольник остроугольный" << std::endl; if (((a_ > 90) || (b_ > 90) || (c_ > 90)) && (a_ + b_ + c_ == 180)) std::cout << "Треугольник тупоугольный " << std::endl; } int main() { setlocale(LC_ALL, "rus"); double a, b, c; std::cout << "a: "; std::cin >> a; std::cout << "b: "; std::cin >> b; std::cout << "c: "; std::cin >> c; praktika triangle(a, b, c); if (!triangle.IsValid()) { std::cout << "error" << std::endl; } else { std::cout << "--------------\n" "a = " << triangle.GetA() << "\n" "b = " << triangle.GetB() << "\n" "c = " << triangle.GetC() << "\n" "alpha = " << triangle.Alpha() << "\n" "beta = " << triangle.Beta() << "\n" "gamma = " << triangle.Gamma() << "\n" "ploshad = " << triangle.ploshad() << "\n" "perimeter = " << triangle.Perimeter() << "\n"; triangle.vidtreygolnika(); } system("pause"); return(0); } |
28.03.2021, 11:12 | #2 |
фрилансер
Форумчанин
Регистрация: 11.10.2019
Сообщений: 980
|
этом классом будет невозможно пользоваться.
а так - на здоровье Код:
|
28.03.2021, 11:14 | #3 |
фрилансер
Форумчанин
Регистрация: 11.10.2019
Сообщений: 980
|
по мне, так всё вот это - лишнее. Поля сделать публичными, инициализировать.
|
28.03.2021, 11:27 | #4 |
фрилансер
Форумчанин
Регистрация: 11.10.2019
Сообщений: 980
|
Код:
|
28.03.2021, 12:24 | #5 | |
Пользователь
Регистрация: 18.03.2021
Сообщений: 26
|
Алексей1153, ну у меня в задании так сказано Для класса объекта, полученного в задании выше разработать private методы,
вычисляющие недостающие (не вводимые в сетторах) данные:Определение типа треугольника,вычисление периметра,вычисление площади. Цитата:
Последний раз редактировалось BDA; 29.03.2021 в 19:06. |
|
29.03.2021, 07:27 | #6 | ||
Регистрация: 26.03.2021
Сообщений: 5
|
Цитата:
Последний раз редактировалось BDA; 29.03.2021 в 19:07. |
||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Публичные методы класса наследника | Heneken87 | Общие вопросы Delphi | 1 | 16.06.2017 15:03 |
Публичные переменные | )Игнат( | Общие вопросы Delphi | 10 | 21.08.2009 20:06 |