Рейтинг:
5
CPallini
Как и предполагали другие, значение, возвращаемое вашими функциями, доступно в main
функция.
Обратите внимание, что вам не нужна переменная-член ar
, это зависимая величина (обычно неразумно использовать избыточную информацию).
#include <iostream>
using namespace std;
class triangle
{
private:
double length, height;
public:
triangle(double l, double h):length(l), height(h){}
double area();
};
double triangle::area()
{
return (length*height)/2;
}
int main()
{
double l, h;
cout<<"enter length of the base of the right angled triangle: ";
cin >> l;
cout << endl <<"enter height the right angled triangle: ";
cin >> h;
triangle o(l,h);
cout << endl << "the area of the triangle is " << o.area() << endl;
}
nv3
Очень полезная подсказка!
Stefan_Lang
Отлично.
Однако я не согласен с идеей не использовать промежуточные переменные, даже если они избыточны: во-первых, компилятор обычно устраняет тривиальную избыточность такого рода в режиме "выпуска"; во-вторых, эти избыточные переменные могут быть большим подспорьем для анализа состояния вашей программы при отладке.
Раньше я записывал формулы на бумаге (а позже и в программах), используя только минимум промежуточных значений. Но со временем я понял, что, хотя промежуточные значения могут быть избыточными, это очень помогает читабельности и пониманию. То же самое относится и к вызовам цепочек функций и разыменованию: это может помочь проверить, действительно ли промежуточные результаты действительны, прежде чем их передадут в следующую операцию.
CPallini
Спасибо.
Что ж, использование избыточных значений-тоже дело личного вкуса. Всякий раз, когда существует сохраненное зависимое значение, Существует также потенциальная опасность выхода из синхронизации. Однако я признаю его отладочную полезность. Другое возможное использование избыточных значений, конечно, для повышения скорости выполнения. Однако я считаю такой сценарий немного "продвинутым". Поэтому мое простое правило для начинающих - "избегайте избыточных переменных".
Member 12959299
Спасибо мистеру Паллини, что ответил Мне во второй раз.
Member 12959299
Да, сбивает с толку новичка
CPallini
Добро пожаловать.
Рейтинг:
23
Albert Holguin
Метод возвращает что-то, если вы хотите его использовать, захватите его с помощью локальной переменной указанного прототипом типа.
main()
{
double l,h;
clrscr();
cout<<"enter length of the base of the right angled triangle: ";
cin>>l;
cout<<"\nenter height the right angled triangle: ";
cin>>h;
triangle o(l,h);
double ar = o.area();
//do something with ar variable
getch();
}
Member 12959299
Спасибо Мистер Ольгин
Рейтинг:
19
Daniel Pfeffer
Ваш треугольник:: площадь() метод работает правильно; это ваш главный() функция, которая имеет проблему,
В линии
o.area();
вы вычисляете значение, а затем ничего с ним не делаете. Все, что вам нужно сделать, это изменить его на
double a = o.area();
Это вызовет
треугольник:: площадь(), и присвоить результат 'a'.
Что вы будете делать с " а " потом, зависит только от вас.
Member 12959299
Спасибо Мистер Пфеффер