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

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

Войти
Регистрация
Восстановить пароль
 
 
Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
#1

Непонятная ошибка. Несколько файлов - C++

30.08.2013, 21:17. Просмотров 498. Ответов 18
Метки нет (Все метки)

один header подключаем в другой(у которого есть .cpp файл) и возникает ошибка!

play1.h
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
 
 
struct card
{
       
       int first; 
       int second; 
       card(int f, int s) : first(f), second(s) {}
       card() : first(0), second(0) {}
       
      
       card& operator=(const card& cop)
       {
             first  = cop.first;
             second = cop.second;
        return *this;
       }
 
       bool operator==(const card& cop)
       {
             if (first == cop.first)
                 return true;
             else return false;
       }
 
       bool operator>(const card& cop)
       {
             if (first > cop.first )
                 return true;
             else return false;
       }
 
       bool operator<(const card& cop)
       {
             if (first < cop.first )
                 return true;
             else return false;
       }
      
};
 
 
bool op(const card& c1, const card& c2)
{
     if (c1.first < c2.first) return true;
     return false;
}
 
bool op2(const card& c1, const card& c2)
{
     if (c1.first == c2.first) return true;
     return false;
}
mypoker.h
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
#include <vector>
#include "play1.h"
using namespace std;
 
typedef vector<card> col_card;
 
class Desk
{
      public:
             Desk();
             
             void refresh();
             card back_card();
             
      private:
              vector<int> desk_c;
};
 
class Player
{
      public:
             Player() : points(0), money(0), inv_money(0) {}
             
             void set_points(long);
             void set_money(int);
             void set_card(card& );
             void set_inv(int);
             
             int get_inv() const { return inv_money;}
             int get_money() const {return money;}
             long get_points() const {return points;}
             card get_card(int i) {return pl_col[i];}
             
      private:
              long points;
              int money;
              col_card pl_col; 
              int inv_money;             
};
 
class Game
{
      public:
             Game(int pl) : pls(pl) {}
             
             void distrib();
             void add_card();
             long det_comb();
             void fcr();
             
             
      private:
              col_card board;
              vector<Player> pls;
              Desk collection;
};
mypoker.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
#include "mypoker.h"
#include <ctime>
#include <algorithm>
 
typedef vector<card> col_card;
 
Desk::Desk()
{
    srand(time(0));
            
            for(int i=2; i<54; i++)
                    desk_c.push_back(i);
            
            for(int j=0; j<50; j++)
                    random_shuffle(desk_c.begin(), desk_c.end());
}
 
void Desk::refresh()
{
     desk_c.clear();
     
     for(int i=2; i<54; i++)
           desk_c.push_back(i);
     
     for(int j=0; j<50; j++)
           random_shuffle(desk_c.begin(), desk_c.end());
            
}
 
card Desk::back_card()
{
     vector<int>::iterator pos;
     pos=desk_c.end()-1;
     card buf;
     if(*pos < 15) { buf=card(*pos, 1); }
     else if(*pos>14 && *pos<28) { buf=card((*pos-13), 2); }  
     else if(*pos>27 && *pos<41) { buf=card((*pos-26), 3); }
     else { buf=card((*pos-39), 4); }
     
     desk_c.erase(pos);  
     return buf;   
}
 
 
///////////////////////////////////////////////////////////////////
 
 
void Player::set_points(long p)
{
     points=p;
}
 
void Player::set_money(int m)
{
     money=m;
}
 
void Player::set_card(card& c)
{
     pl_col.push_back(c);
}
 
void Player::set_inv(int i)
{
     inv_money=i;
}
 
 
//////////////////////////////////////////////////////////////////////
 
 
void Game::distrib()
{
     for(int i=0; i<pls.size(); i++)
     {
              card c=collection.back_card();
              pls[i].set_card(c);
              c=collection.back_card();
              pls[i].set_card(c);
              
              pls[i].set_points(0);
              pls[i].set_inv(0);
     }
} 
 
void Game::add_card()
{
     board.push_back(collection.back_card());
}
 
long Game::det_comb()
{
     
}
 
void Game::fcr()
{
     
}
при компиляции mypoker.cpp возникает ошибка:

[Linker error] undefined reference to `WinMain@16'
ld returned 1 exit status
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.08.2013, 21:17     Непонятная ошибка. Несколько файлов
Посмотрите здесь:

Непонятная ошибка - C++
Доброго времени суток! Не могу понять в чём ошибка. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; void...

Непонятная ошибка - C++
Пробую написать подключаемый модуль к файловому менеджеру ФАР. Программа, не хочет компилится, затсряла на непонятной ошибке Плагин...

Непонятная ошибка - C++
Здравствуйте, есть задача с графами - соединенные точки и тп, вот попытался сделать структуры и классы для этой задачи и получил ошибку...

непонятная ошибка - C++
#include &lt;stdio.h&gt; #include &lt;math.h&gt; main() { float x,pi,s,e,q,n; pi=3.14 ; x= pi/6 ; e=0,0001; s=0 ;

Непонятная ошибка - C++
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; class CMessage { private: char *Text; char...

непонятная ошибка - C++
#include &lt;iostream&gt; using namespace std; void main() { int **a, **b, n; cin &gt;&gt;n; a = new int *; for (int i=0; i&lt; n;...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.08.2013, 21:22     Непонятная ошибка. Несколько файлов #2
А main() где и проект какой?
Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
30.08.2013, 21:29  [ТС]     Непонятная ошибка. Несколько файлов #3
Цитата Сообщение от alsav22 Посмотреть сообщение
А main() где?
ыы

мда уж дожились задавать такие вопросы но все же:

все время писал все в хедере но однажды познал истину, что берем файл X.h его реализацию полностью делаем в X.cpp и подключаем X.h в Main.cpp//таким образом при внесение в реализацию изменений(в X.cpp) не нужно заново собирать проект ... так ли это?
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.08.2013, 21:39     Непонятная ошибка. Несколько файлов #4
Среда какая? Кроме того, что в первом посте, ещё что-нибудь пишет? И ещё раз:
Цитата Сообщение от alsav22 Посмотреть сообщение
А main() где и проект какой?
Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
30.08.2013, 21:45  [ТС]     Непонятная ошибка. Несколько файлов #5
Цитата Сообщение от alsav22 Посмотреть сообщение
И ещё раз
я собирался main реализовать например в main.cpp и к нему подкл mypoker.h

среда DevC++ перебил винду, а тк сильно хотелось закончить исходники

Добавлено через 1 минуту
Цитата Сообщение от alsav22 Посмотреть сообщение
проект какой
какой еще мб проект? канечно консоль
fasked
30.08.2013, 21:54
  #6

Не по теме:

Цитата Сообщение от Хулиган Посмотреть сообщение
C++
1
2
3
if (first == cop.first)
    return true;
else return false;
Это примерно как написать
C++
1
2
3
if (true)
    return true;
else return false;

Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
30.08.2013, 22:01  [ТС]     Непонятная ошибка. Несколько файлов #7
Цитата Сообщение от fasked Посмотреть сообщение
Это примерно как написать
почему? при сравнении используется первое поле структуры!
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.08.2013, 22:03     Непонятная ошибка. Несколько файлов #8
Цитата Сообщение от Хулиган Посмотреть сообщение
я собирался main реализовать например в main.cpp
Собирались и не собрались? Без main() компилируете?
Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
30.08.2013, 22:05  [ТС]     Непонятная ошибка. Несколько файлов #9
fasked, а по оформлению какие замечание? это уже не по теме

Добавлено через 1 минуту
Цитата Сообщение от alsav22 Посмотреть сообщение
Собирались и не собрались?
ну так мне нужно вначале mypoker.cpp скомпилировать что бы хедер подключить в main.cpp
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.08.2013, 22:08     Непонятная ошибка. Несколько файлов #10
Цитата Сообщение от Хулиган Посмотреть сообщение
ну так мне нужно вначале mypoker.cpp скомпилировать что бы хедер подключить в main.cpp
Не знаю как в DevC++, но в студии, компиляция без main(), не пройдёт.
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
30.08.2013, 22:09     Непонятная ошибка. Несколько файлов #11
Цитата Сообщение от Хулиган Посмотреть сообщение
а по оформлению какие замечание?
Этого будет достаточно:
C++
1
return first == cop.first;
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.08.2013, 22:13     Непонятная ошибка. Несколько файлов #12
Цитата Сообщение от Хулиган Посмотреть сообщение
[Linker error] undefined reference to `WinMain@16'
ld returned 1 exit status
main() не находит, вот и пишет...
Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
30.08.2013, 22:17  [ТС]     Непонятная ошибка. Несколько файлов #13
Цитата Сообщение от fasked Посмотреть сообщение
return first == cop.first;
изначально так и было, но ктот из умных товарищей форума реализовал так, а я глупости юношеской скопировал(

Добавлено через 3 минуты
Цитата Сообщение от alsav22 Посмотреть сообщение
main() не находит, вот и пишет...
хорошо
есть 4 файла

play.h
mypoker.h(#include "play.h")
mypoker.cpp
main.cpp

напишите порядок сборки, что и как собирать!
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
30.08.2013, 22:19     Непонятная ошибка. Несколько файлов #14
Цитата Сообщение от Хулиган Посмотреть сообщение
напишите порядок сборки, что и как собирать!
Код
g++ mypoker.cpp main.cpp -opoker
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.08.2013, 22:19     Непонятная ошибка. Несколько файлов
Еще ссылки по теме:

Непонятная ошибка - C++
Здравствуйте!Начинаю изучать C++,хотел сделать калькулятор логики,арифметический и закона Ома. После расчета в любом калькуляторе,кроме...

Непонятная ошибка!? - C++
Есть задача: дан массив и число, переставить числа в массиве таким образом, чтобы слева от некоторой границы шли числа, меньшие или равные...

Непонятная ошибка - C++
Вообщем имеется такой код: // главная программа aka programm.cpp #include &quot;Sales_item.h&quot; using namespace std; ...

Непонятная ошибка - C++
Всем привет! Вообщем вот функция, которая переводит двоичное число в десятичное, + ещё пару кусков кода, чтобы было понятно, что и откуда...

непонятная ошибка - C++
Люди срочно на помощь, в чем касяк // Экзам.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; ...


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

Или воспользуйтесь поиском по форуму:
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.08.2013, 22:19     Непонятная ошибка. Несколько файлов #15
Цитата Сообщение от Хулиган Посмотреть сообщение
напишите порядок сборки,
В ручную что-ли? Что за вопросы? В проект добавьте файлы и пусть компилятор собирает. Что не так будет - напишет.
Yandex
Объявления
30.08.2013, 22:19     Непонятная ошибка. Несколько файлов
Ответ Создать тему
Опции темы

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