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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.08.2009, 19:45   #1
Александр Елис
Пользователь
 
Регистрация: 18.08.2009
Сообщений: 70
Сообщение Помогите сделать код работоспособным (с++)

Здравствуйте, я недавно начал изучать С++ по пособию. Столкнулся со следующей проблемой: компилятор выдает непонятного рода ошибку.
" error LNK2019: unresolved external symbol "public: __thiscall VECTOR::Vector::Vector(double,doubl e,char)" (??0Vector@VECTOR@@QAE@NND@Z) referenced in function "public: class VECTOR::Vector __thiscall VECTOR::Vector:perator+(class VECTOR::Vector const &)const " (??HVector@VECTOR@@QBE?AV01@ABV01@@ Z)".
Ругается он на этот фрагмент кода:
Vector Vector:perator+ (const Vector & b) const
{
return Vector(x+b.x,y+b.y);
}
Находится этот фрагмент в file_2.cpp. В файле же head.h находится следующий фрагмент:
Код:
//======================================================||
#ifndef _HEAD_H_
#define _HEAD_H_
//========================||
#include <iostream>
#include <cmath>
using namespace std;
//======================================================||
	class Vector
	{
	private:
		double x;
		double y;
		double mag;
		double ang;
		char mode;
		//============||
		void set_mag();
		void set_ang();
		void set_x();
		void set_y();
	public:
		Vector(double n1, double n2, char form = 'r');
		Vector();
		~Vector();
		void set(double n1, double n2, char form = 'r');
		double xval() const {return x;}
		double yval() const {return y;}
		double magval() const {return mag;}
		double angval() const {return ang;}
		void polar_mode();
		void rect_mode();
		//================================================||
		Vector operator+(const Vector & b) const;
		Vector operator-(const Vector & b) const;
		Vector operator~() const;
		Vector operator*(double n) const;
		//================================================||
		friend Vector operator*(double n, const Vector & a);
		friend Vector operator<<(ostream & os, const Vector & v);
	};

//======================================================||
#endif
Почему же вылетает ошибка и как ее исправить? Заранее спасибо!

Последний раз редактировалось Stilet; 19.08.2009 в 08:53.
Александр Елис вне форума Ответить с цитированием
Старый 18.08.2009, 19:55   #2
lennon
Заблокирован
 
Регистрация: 18.11.2007
Сообщений: 254
По умолчанию

может быть ты файл file_2.cpp не добавил в проект?
lennon вне форума Ответить с цитированием
Старый 18.08.2009, 20:03   #3
Александр Елис
Пользователь
 
Регистрация: 18.08.2009
Сообщений: 70
По умолчанию

Добавил 3 файла: file_1.cpp (функция main), file_2.cpp (определения), head.h (прототипы ). Вроде все в порядке...не могу понять почему вылетает ошибка.
Александр Елис вне форума Ответить с цитированием
Старый 18.08.2009, 20:05   #4
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Ну, по идее при работе с классами файл с описанием класса имеет имя с расширением *.h, а файл с реализацией имеет то же самое имя с расширением *.cpp. Вроде так...
В Вашем случае файлы должны называться так:
Код:
// file_2.cpp
Vector Vector:perator+ (const Vector & b) const
{
return Vector(x+b.x,y+b.y);
}
и
Код:
// file_2.h
//========================||
#include <iostream>
#include <cmath>
using namespace std;
//=================================== ===================||
class Vector
{
private:
double x;
double y;
double mag;
double ang;
char mode;
//============||
void set_mag();
void set_ang();
void set_x();
void set_y();
public:
Vector(double n1, double n2, char form = 'r');
Vector();
~Vector();
void set(double n1, double n2, char form = 'r');
double xval() const {return x;}
double yval() const {return y;}
double magval() const {return mag;}
double angval() const {return ang;}
void polar_mode();
void rect_mode();
//=================================== =============||
Vector operator+(const Vector & b) const;
Vector operator-(const Vector & b) const;
Vector operator~() const;
Vector operator*(double n) const;
//=================================== =============||
friend Vector operator*(double n, const Vector & a);
friend Vector operator<<(ostream & os, const Vector & v);
};

//=================================== ===================||
psycho-coder вне форума Ответить с цитированием
Старый 18.08.2009, 20:14   #5
Александр Елис
Пользователь
 
Регистрация: 18.08.2009
Сообщений: 70
По умолчанию

Названия переделал, изменил код, где необходимо, но ситуация не изменилась... Если использую
Vector Vector:perator+ (const Vector & b) const
{
return Vector(); // вместо return Vector(x-b.x,y-b.y); }
, то компилятор не выдает ошибки...
Александр Елис вне форума Ответить с цитированием
Старый 18.08.2009, 20:30   #6
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

А, ну прально. У Вас нет реализации конструктора
Код:
Vector(double n1, double n2, char form = 'r')
{
}
ЗЫ У меня ругается на 3-й параметр...
psycho-coder вне форума Ответить с цитированием
Старый 18.08.2009, 20:42   #7
Александр Елис
Пользователь
 
Регистрация: 18.08.2009
Сообщений: 70
По умолчанию

о_О) огромное спасибо, по невнимательности копался бы долго
Александр Елис вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите оптимизировать код tae1980 Microsoft Office Excel 2 11.02.2009 23:24
Модернизировать код, сделать его быстрее Rusl92 Общие вопросы Delphi 5 03.11.2008 19:23
Помогите исправить код Tanuska___:) БД в Delphi 4 07.08.2008 17:40
Структуры. Как сделать, что-бы код заработал? Иллидан Общие вопросы C/C++ 1 19.05.2008 13:19