С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.69
Edison4
6 / 6 / 0
Регистрация: 23.02.2012
Сообщений: 169
#1

Неразрешенный внешний символ - C++

26.10.2012, 23:08. Просмотров 2612. Ответов 1
Метки нет (Все метки)

Здравствуйте!Возникла проблема с классами
Вот вообщем мой класс :
WorldEdit.cpp
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#include "WorldEdit.h"
#include "Mouse.h"
#include <iostream>
#include <HGE\hgesprite.h>
extern HGE *hge;
Mouse *mouse;
 
const int WidthLevel = 32;
const int HeightLevel = 32;
 
 
void WorldEdit::CreateWorld()
{
    
    int blocks[WidthLevel][HeightLevel] =
   {{2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
    {2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2},
    {2,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2},
    {2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2},
    {2,1,1,3,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2},
    {2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2},
    {2,1,3,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2},
    {2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2},
    {2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2},
    {2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2},
    {2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2},
    {2,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2},
    {2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2},
    {2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2},
    {2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2},
    {2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2},
    {2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2},
    {2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2},
    {2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2},
    {2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2},
    {2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2},
    {2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2},
    {2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2},
    {2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2},
    {2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2},
    {2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2},
    {2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2},
    {2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2},
    {2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2},
    {2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2},
    {2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2}};
 
    CountBlocks = 0;
    float X=0,Y=0;
    for(int i=0;i<WidthLevel;i++)
    {
        for (int j=0;j<HeightLevel;j++)
        {
            if (blocks[i][j]==1)
            {
                Tile tile(X,Y);
                tile.Type = 1;
                tile.Load("textures\\block_2.png");
                Tiles.push_back(tile);
            }
            if (blocks[i][j]==3)
            {
                Tile tile(X,Y);
                tile.Type = 3;
                tile.Load("textures\\block_1.png");
                Tiles.push_back(tile);
            }
            if (blocks[i][j]==2)
            {
                Tile tile(X,Y);
                tile.Type = 2;
                tile.Load("textures\\block_3.png");
                Tiles.push_back(tile);
            }
            X+=35;
            CountBlocks++;
        }
        X=0;
        Y+=35;
    }
    std::cout<<CountBlocks<<std::endl;
}
void WorldEdit::SetBlock()
{
 
}
bool WorldEdit::CollideBlock(hgeRect *rectangle)
{
    for(int i =0;i<Tiles.size();i++)
    {
        if (Tiles[i].sprite->rectangle.Intersect(rectangle))
        {
            return true;
        }
    }
    return false;
}
void WorldEdit::Draw()
{   
    for (int i=0;i<Tiles.size();i++)
    {
        Tiles[i].Draw();
    }
    /*
    for (std::list<Tile>::iterator i = Tiles.begin();i!=Tiles.end();i++)
    {
    i->Draw();
    }*/
}
WorldEdit.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <list>
#include <vector>
#include "Tile.h"
class WorldEdit
{
public:
    
    /*
    //WorldEdit() {};
    //~WorldEdit() {};*/
    static void CreateWorld();
    static std::vector<Tile> Tiles;
    static int CountBlocks;
    static void SetBlock();
    static bool CollideBlock(hgeRect *rectangle);
    static void Draw();
};
Появляться стала ошибка как только я добавил статик почему не понимаю смотрел в книжках вроде так .Вот сам текст ошибки :
Ошибка 2 error LNK2001: неразрешенный внешний символ ""public: static int WorldEdit::CountBlocks" (?CountBlocks@WorldEdit@@2HA)" C:\Users\Edison4\documents\visual studio 2010\Projects\HGETutor\HGETutor\WorldEdit.obj HGETutor
Ошибка 1 error LNK2001: неразрешенный внешний символ ""public: static class std::vector<class Tile,class std::allocator<class Tile> > WorldEdit::Tiles" (?Tiles@WorldEdit@@2V?$vector@VTile@@V?$allocator@VTile@@@std@@@std@@A)" C:\Users\Edison4\documents\visual studio 2010\Projects\HGETutor\HGETutor\WorldEdit.obj HGETutor
Ошибка 3 error LNK1120: 2 неразрешенных внешних элементов C:\Users\Edison4\documents\visual studio 2010\Projects\HGETutor\Debug\HGETutor.exe 1 1 HGETutor
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2012, 23:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Неразрешенный внешний символ (C++):

Неразрешенный внешний символ - C++
Ошибка LNK1120 неразрешенных внешних элементов: 1 Ошибка LNK2019 ссылка на неразрешенный внешний символ &quot;void __cdecl print(struct...

Неразрешенный внешний символ - C++
Здравствуйте. Не понимаю почему возникает ошибка. Исходный код.obj : error LNK2019: ссылка на неразрешенный внешний символ &quot;class Token...

Неразрешенный внешний символ - C++
Ребят помогите, пожалуйста, не могу понять в чем заключается ошибка. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; ...

Неразрешенный внешний символ - C++
#include &lt;math.h&gt; #include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;iostream&gt; #include &lt;string&gt; using...

Неразрешенный внешний символ - C++
Привет всем, помогите исправить ошибку: Ошибка 1 error LNK2001: неразрешенный внешний символ &quot;&quot;struct kadry * array&quot;...

Неразрешенный внешний символ - C++
Кароч дело в том что вечно видает ошибку в MFC1&gt;Figure.obj : error LNK2019: ссылка на неразрешенный внешний символ &quot;public: __thiscall...

1
Kuzia domovenok
2060 / 1905 / 174
Регистрация: 25.03.2012
Сообщений: 6,564
Записей в блоге: 1
26.10.2012, 23:17 #2
статические члены должны быть дополнительно объявлены по аналогии с глобальными переменными, если не ошибаюсь.
и вообще. Зачем тут всё статическое??? Это типа попытка синглетон сделать?

C++
1
2
3
4
5
6
7
//WorldEdit.h
class WorldEdit{
public:
static int CountBlocks;
void CreateWorld();
//...
};
C++
1
2
3
4
5
6
//WorldEdit.cpp
int WorldEdit::CountBlocks=0;//ДОБАВИТЬ В СРР ФАЙЛ!!!
void WorldEdit::CreateWorld(){
//*****
}
//...
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.10.2012, 23:17
Привет! Вот еще темы с ответами:

Неразрешенный внешний символ - C++
Здравствуйте! Недавно скачала библиотеку DocxFactory и решила, собственно, использовать ее в одном из проектов. В общем, путь к либе...

Неразрешенный внешний символ - C++
Подскажите, пожалуйста, что эта может быть за ошибка fatal error LNK1120: 1 неразрешенных внешних элементов и warning C4996: 'getch': The...

неразрешенный внешний символ - C++
В общем, проблема: подключаю библиотеку tbb (параллельные вычисления) и при компиляции выдается ошибка: &quot; Ошибка 4 error LNK2001:...

Ссылка на неразрешенный внешний символ - C++
Что это? Как я понял это какая то переменная/функция, которая некотором образом не видна другой функции. Но почему ошибка возникает на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.