Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

[linker error] undefined reference to 'vtable for Car' - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как осуществить Обработку бинарного файла? http://www.cyberforum.ru/cpp-beginners/thread86150.html
Файл содержит произвольные данные. Определить, встречается ли в файле определенная последовательность байт (заданных виде массива символов). Если встречается, то вывести на экран все смещения, где...
C++ Магический квадрат Всем привет! Вот во вторник экзамен по программированию, препод дала задачки разобрать пять штук, для подготоки, помогите если не сложно. 1. Написать функцию, которая выводит на экран строку,... http://www.cyberforum.ru/cpp-beginners/thread86127.html
C++ Вывести на экран в первой строке нечетные символы, во второй четные символы исходной строки
Помогите написать 3 программы. (на С или С++) 1. Вывести на экран в первой строке нечетные символы, во второй четные символы исходной строки. 2. Вывести на экран сначала цифры, затем буквы,...
C++ поменять местами 2 соседних слова в строке
как написать эту программу? ввести массив строк слова разделены 1 пробелом, максимальная размерность массива 10 строк по 50 элементов поменять местами каждые 2 соседних слова в каждой строке
C++ Расчетная Работа с Файлами.Удаление записи. http://www.cyberforum.ru/cpp-beginners/thread86068.html
Возникли проблемы с удалением записи из структуры.Подскажите где у меня ошибка почему не видет? // Console.cpp : Defines the entry point for the console application. // #include "stdafx.h"...
C++ Система обмена сообщениями Здраствуйте форумчане! И так мне надо написать клиент-серверное сетевое приложение реализующее функционал системы обмена сообщениями (аськи на пример). нужен программа-сервер и клиент. И все это... подробнее

Показать сообщение отдельно
jemper
0 / 0 / 0
Регистрация: 15.01.2010
Сообщений: 6

[linker error] undefined reference to 'vtable for Car' - C++

15.01.2010, 18:16. Просмотров 2376. Ответов 13
Метки (Все метки)

доброго времени вам. помогите, пожалуйста, с задачей разобраться. хочу сделать пример на паттерн "абстрактная фабрика". фабрика собирает афтомобили.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include <cstdlib>
#include <iostream>
#include <new>
#include <cstring>
 
using namespace std;
 
 
class Engine 
{ 
public: 
  virtual void setSpeedLimit(int kmph); 
  virtual void addOil(float amount); 
  
}; 
class Wheel 
{ 
  float mRadius; 
public: 
  Wheel(float radius) { mRadius = radius; } 
  virtual float getRadius() const {return mRadius;} 
}; 
 
 
class Car 
{ 
public: 
  virtual const char* getName() = 0; 
  virtual void setEngine(Engine* engine); 
  virtual void setWheels(Wheel* FR, Wheel* FL, Wheel* BR, Wheel* BL);
 // virtual void setFrontWheels(Wheel* FR, Wheel* FL); 
 // virtual void setBackWheels(Wheel* BR, Wheel* BL); 
 
};
class AbstractCarFactory  //создаем абстрактный класс, с единственным предназначением- быть 
                         //родителем для других классов.
{ 
public: 
  virtual Car* createCar() = 0;
  virtual Engine* createEngine() = 0;
  virtual Wheel* createWheel() = 0;
};
class CarBMW5 : public Car 
{ 
public: 
   const char* getName() {return "BMW5";} 
   void setEngine(Engine* engine) {engine->setSpeedLimit(100); engine->addOil(12.3); } 
   void setWheels(Wheel* FR, Wheel* FL, Wheel* BR, Wheel* BL) {cout<< "колеса";}
};
 
class BMW5CarFactory : public AbstractCarFactory 
{ 
 public: 
  virtual Car* createCar() { return new CarBMW5(); } 
  virtual Engine* createEngine() {return new Engine();} 
  virtual Wheel* createWheel() {return new Wheel(16);} 
 }; 
 
Car* createCar(AbstractCarFactory* carFactory) 
{ 
  Car* car = carFactory->createCar(); 
  Engine* engine = carFactory->createEngine(); 
  car->setEngine(engine); 
  car->setWheels(carFactory->createWheel(), carFactory->createWheel(), carFactory->createWheel(), carFactory->createWheel()); 
  //  код для "сборки" готового автомобиля из частей 
  return car; 
}
 
 
int main(int argc, char *argv[])
{
 CarBMW5 a;  // при попытке создания объекта класса выдает ошибки во время компиляции. если  строку закомментировать - ошибок не выдает.
// BMW5CarFactory b;  
    system("PAUSE");
    return EXIT_SUCCESS;
}
ошибки:
[linker error] undefined reference to 'vtable for Car'
ld returned 1 exit status
C:\Dev-Cpp\Makefile.win [Build Error] [project1.exe] Error 1
если раскомментировать строку "// BMW5CarFactory b; " то добавляет к этим ошибкам еще такую:
[Linker error] undefined reference to `vtable for Engine'
ранних версий компилятора не было, да и других компиляторов вроде нету на компе..
какая может быть причина, подскажите, пожалуйста)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru