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

Виртуальные классы и ошибка "Error LNK2001: unresolved external symbol" - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сортировка списка с использованием std::sort http://www.cyberforum.ru/cpp-beginners/thread1090415.html
Что-то не получается отсортировать целочисленные данные расположенные в списке, компилятор (VS10) жутко ругается. В чем может быть дело? #include <iostream> #include <conio.h> #include <string> #include <list> #include <algorithm> using namespace std;
C++ Перевод строки в дату Вопрос: есть строка "2013-06-28 19:00:00.000". Как её привести к типу дата? Нужно для последующего сравнения. http://www.cyberforum.ru/cpp-beginners/thread1090395.html
C++ Реализация отношения классов типа двунаправленная ассоциация, UML, порядок объявления классов, неполный класс
Доброго времени суток! Осваивая UML, решил реализовать отношение двунаправленной ассоциации по диаграмме: У одного владельца (Person) может быть 0...* машин (Car). У одной машины может быть 0...1 владельцев. Первая попытка не компилируется: class Car;
C++ Создать матрицу из контейнера std::array
Есть код: #include <iostream> #include <array> using namespace std; int main () { array <int,5> myarray; return 0;
C++ Опишите код - какая функция за что отвечает? http://www.cyberforum.ru/cpp-beginners/thread1090344.html
опишите плиз код какая функция за что отвечает? код: #include <stdlib.h> #include <time.h> #include <grx20.h> #include <grxkeys.h> #include <stdio.h>
C++ В конец каждой строки через пробел добавляется число, которое равно количеству символов в самом длинном слове данной строки помогите с описанием кода какая функция за что отвечает? Следует разработать программу, которая преобразует любой текстовый файл в другой текстовый файл по правилу: В конец каждой строки через пробел добавляется число, которое равно количеству символов в самом длинном слове данной строки код: #include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <assert.h> ... подробнее

Показать сообщение отдельно
Kill100
 Аватар для Kill100
356 / 245 / 32
Регистрация: 11.12.2010
Сообщений: 1,060
Завершенные тесты: 1
06.02.2014, 05:49     Виртуальные классы и ошибка "Error LNK2001: unresolved external symbol"
Решил перелезть с C# на C++. Ну или по крайней мере немного его подучить для самообразования.
В C# есть такая замечательная вещь как интерфейсы.
Дошел до интерфейсов класса и застрял. В с++ вроде бы реализуется через абстрактные классы. Ок пишу.
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
class Dom 
{
private:
    int CountFloors,
        CountApartments;
 
public:
    int GetCountFloors()
    {
        return this->CountFloors;
    }
    int GetCountApartments()
    {
        return this->CountApartments;
    }
    void SetCountFloors(int CountFloors)
    {
        this->CountFloors = CountFloors;
    }
    void SetCountApartments(int CountApartments)
    {
        this->CountApartments = CountApartments;
    }
 
    Dom::Dom(int CountFloors, int CountApartments)
    {
        this->CountApartments = CountApartments;
        this->CountFloors = CountFloors;
    }
    Dom::~Dom()
    {
    }
};
int main()
{
    Dom d = Dom(2, 5);
    printf(" %i  %i :\r\n", d.GetCountApartments(), d.GetCountFloors());
    d.SetCountApartments(10);
    d.SetCountFloors(15);
    printf(" %i  %i :\r\n", d.GetCountApartments(), d.GetCountFloors());
}
Всё круто всё компилируется и работает.
Ок теперь делаю так.
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
class  IDom{
public:
    virtual int GetCountFloors();
    virtual int GetCountApartments();
    virtual void SetCountFloors(int CountFloors);
    virtual void SetCountApartments(int CountApartments);
};
 
class Dom: public IDom 
{
private:
    int CountFloors,
        CountApartments;
 
public:
    int GetCountFloors()
    {
        return this->CountFloors;
    }
    int GetCountApartments()
    {
        return this->CountApartments;
    }
    void SetCountFloors(int CountFloors)
    {
        this->CountFloors = CountFloors;
    }
    void SetCountApartments(int CountApartments)
    {
        this->CountApartments = CountApartments;
    }
 
    Dom::Dom(int CountFloors, int CountApartments)
    {
        this->CountApartments = CountApartments;
        this->CountFloors = CountFloors;
    }
    Dom::~Dom()
    {
    }
};
int main()
{
    Dom d = Dom(2, 5);
    printf(" %i  %i :\r\n", d.GetCountApartments(), d.GetCountFloors());
    d.SetCountApartments(10);
    d.SetCountFloors(15);
    printf(" %i  %i :\r\n", d.GetCountApartments(), d.GetCountFloors());
}
и ловлю
error LNK2001: unresolved external symbol ""public: virtual void __thiscall IDom::SetCountApartments(int)" (?SetCountApartments@IDom@@UAEXH@Z)"
Вариант с
C++
1
    iDom d = Dom(2, 5);
То же не проходит
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru