Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2010, 14:54   #1
ArniLand
Пользователь
 
Регистрация: 27.06.2009
Сообщений: 89
По умолчанию Угол и длина прямой - наследование ошибка

Написал программу по наследованию которая вычисляет угол и длину координат прямой. Писал в VS 2008 professional. Выдает ошибку, помогите исправить ее.
Ошибка:
Цитата:
d:\мои документы\visual studio 2008\projects\nasledovanie_variant_ 1 - linii\nasledovanie_variant_1 - linii\main.cpp(11) : error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'void' (or there is no acceptable conversion)
Код программы:
Код:
//Line.h
class Line
{
protected:
	double x1;
	double y1;
	double x2;
	double y2;
public:
	Line(double dx1, double dy1, double dx2, double dy2);
	~Line();
	double Dlina();
};

class Straight : public Line
{
public:
	Straight(double dx1, double dy1, double dx2, double dy2) : Line(dx1, dy1, dx1, dy2) {};
	~Straight();
	double Angle();
	void vuvod();
};

//.cpp
#include "stdafx.h"
#include <iostream>
#include "Line.h"
#include <math.h>
#include <string.h>
using namespace std;

Line::Line(double dx1, double dy1, double dx2, double dy2)
{
	x1 = dx1;
	x2 = dx2;
	y1 = dy1;
	y2 = dy2;
}

double Line::Dlina()
{
	return sqrt((y2-y1)*(y2-y1)+(x2-x1)*(x2-x1));
}

double Straight::Angle()
{
	return acos((x2-x1)/Line::Dlina());
}

void Straight::vuvod()
{
	cout <<"x1 =" <<x1<<"/r/n";
	cout <<"x2 =" <<x2<<"/r/n";
	cout <<"y1 =" <<y1<<"/r/n";
	cout <<"y2 =" <<y2<<"/r/n";
}

//main.cpp
#include "stdafx.h"
#include <iostream>
#include "Line.h"
#include <math.h>
#include <string.h>
using namespace std;

int main()
{
	Straight Otrezok(2.0, 2.0, 4.0, 4.0);
	cout <<"Koordinatu linii ="<<Otrezok.vuvod();
	cout <<"Dlina ="<<Otrezok.Dlina();
	cout <<"Ygol ="<<Otrezok.Angle();
	return 0;
}
ArniLand вне форума Ответить с цитированием
Старый 04.04.2010, 14:57   #2
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

Цитата:
cout <<"Koordinatu linii ="<<Otrezok.vuvod();
Ну, и что тут не ясно? Что возвращает функция vuvod?
f.hump вне форума Ответить с цитированием
Старый 04.04.2010, 15:24   #3
ArniLand
Пользователь
 
Регистрация: 27.06.2009
Сообщений: 89
По умолчанию

ничего не возвращает она
ArniLand вне форума Ответить с цитированием
Старый 04.04.2010, 15:38   #4
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

правильно. в ошибке об этом и сказано, нельзя вывести ничего.
поэтому вот это

cout <<"Koordinatu linii ="<<Otrezok.vuvod();

стоит заменить на

cout <<"Koordinatu linii =";
Otrezok.vuvod();
f.hump вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Строки - Наследование ошибка[C++] ArniLand Общие вопросы C/C++ 2 30.03.2010 00:15
найти угол наклона tatee Помощь студентам 0 21.12.2009 01:29
Увеличения угла - поворот прямой на угол. Lemo Помощь студентам 8 30.03.2009 20:48
Угол по тангенсу AVer Общие вопросы Delphi 9 01.02.2007 12:47