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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.05.2012, 04:11   #1
Митовей
Пользователь
 
Регистрация: 07.04.2012
Сообщений: 30
По умолчанию ошибка LNK2019

Класс Petri_Net:

Код:
#include "Place.h"
#include "Transation.h"
#include "Petri_Net.h"

using namespace std;

float	shoulder = 0;
float	scaling = -150.0;
float	left_right = 0.0;
float	up_down = 100.0;
float	shoul = 0;

void setShoulder (float z) {
	shoulder = (int)(shoulder + z) % 360;
}
void setScaling (float z) {
	scaling = (int)(scaling + z) % 360;
}
void setLR (float z) {
	left_right += z;
}
void setUP (float z) {
	up_down += z;
}
void setShoul (float z) {
	shoul += z;
}

/////////
Кейборд функция:

Код:
//////////////
void keyboard (unsigned char key, int m, int n)
{
   switch (key) {
      case 'a':
	  case 'A':
	  case 'ф':
	  case 'Ф':
         c.setScaling(10.0);
         glutPostRedisplay();
         break;
      case 'd':
	  case 'D':
	  case 'в':
	  case 'В':
		 c.setScaling(-10);
         glutPostRedisplay();
		 break;
	  case 'w':
         c.setShoul(10);
         glutPostRedisplay();
		 break;
	  case 's':
         c.setShoul(-10);
         glutPostRedisplay();
		 break;
	  case '5':
		 c.setScaling(1.0);
		 glutPostRedisplay();
		 break;
	  case '0':
		 c.setScaling(-1.0);
		 glutPostRedisplay();
		 break;
	  case '6':
		 c.setLR(-1.0);
		 glutPostRedisplay();
		 break;
	  case '4':
		 c.setLR(1.0);
		 glutPostRedisplay();
		 break;
	  case '2':
		 c.setUP(1.0);
		 glutPostRedisplay();
		 break;
	  case '8':
		 c.setUP(-1.0);
		 glutPostRedisplay();
		 break;
      default:
         break;
   }
}
//////////////////
При компиляции возникают ошибки:
1>курсач.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall petri_net::setUP(float)" (?setUP@petri_net@@QAEXM@Z) в функции "void __cdecl keyboard(unsigned char,int,int)" (?keyboard@@YAXEHH@Z)
1>курсач.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall petri_net::setLR(float)" (?setLR@petri_net@@QAEXM@Z) в функции "void __cdecl keyboard(unsigned char,int,int)" (?keyboard@@YAXEHH@Z)
1>курсач.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall petri_net::setShoul(float)" (?setShoul@petri_net@@QAEXM@Z) в функции "void __cdecl keyboard(unsigned char,int,int)" (?keyboard@@YAXEHH@Z)
1>курсач.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall petri_net::setScaling(float)" (?setScaling@petri_net@@QAEXM@Z) в функции "void __cdecl keyboard(unsigned char,int,int)" (?keyboard@@YAXEHH@Z)
Митовей вне форума Ответить с цитированием
Старый 01.05.2012, 04:41   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Реализация членов класса описывается следующим образом:
Код:
ReturnType ClassName::MethodName (Arguments...) {
  ... Body ...
}
Таким образом, в Вашем случае необходимо ко всем методам (setUP, setLR, setShoul, setScaling) добавить имя класса, к которому они принадлежат, вроде этого:
Код:
void petri_net::setShoulder (float z) {
	shoulder = (int)(shoulder + z) % 360;
}
Также, по возможности, старайтесь избегать глобальных переменных, предпочитая инкапсулировать их в классы. Я надеюсь, Вы не используете их как состояние класса? Если так, то тогда обязательно нужно положить их в объявление класса petri_net в .h файл.
netrino вне форума Ответить с цитированием
Старый 01.05.2012, 04:44   #3
Митовей
Пользователь
 
Регистрация: 07.04.2012
Сообщений: 30
По умолчанию

О боже... Совсем вылетело из головы... Спасибо большое. Члены класса я специально заменил на глобальные переменные, так как значения этих переменных мистическим после действия функции кейборд пропадают... Может глобальные переменные решат мою проблему.
Митовей вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка LNK2019 L6go1as Общие вопросы C/C++ 3 18.04.2012 19:02
Библиотека ftd2xx.lib. Ошибка LNK2019 при компоновке NBS Помощь студентам 0 09.03.2012 15:35
Visual C++ Express, ошибка LNK2019 alexdelphi Visual C++ 13 12.02.2012 04:24
Свой класс - ошибка линковки LNK2019: ссылка на неразрешенный внешний символ... Egyptorium Общие вопросы C/C++ 7 11.01.2012 17:48
error LNK2019... Drakon4ek Общие вопросы C/C++ 0 29.03.2010 11:42