I’m having lots of errors in my final project (a poker and black jack sim). I’m using a vector to implement the «hands» in the blackJack class, and I’m using a structured data type declared in another class, which is publicly inherited. The error I’m worried about is the compiler I’m using telling me that I’m not declaring a type in the vector.
blackJack header file:
#ifndef BLACKJACK_H
#define BLACKJACK_H
#include <vector>
#include "card.h"
class blackJack: public cards
{
private:
vector <Acard> playerHand;
vector <Acard> dealerHand;
public:
blackJack();
void dealHands();
void hitOrStay();
void dealerHit();
int handleReward(int);
void printHands();
};
#endif
card header file (this is the class black jack inherits from):
#ifndef CARD_H
#define CARD_H
const char club[] = "xe2x99xa3";
const char heart[] = "xe2x99xa5";
const char spade[] = "xe2x99xa0";
const char diamond[] = "xe2x99xa6";
//structured data to hold card information
//including:
// a number, representing Ace-King (aces low)
//a character, representing the card's suit
struct Acard
{
int number;
char pic[4];
};
// a class to hold information regarding a deck of cards
//including:
//An array of 52 Acard datatypes, representing our Deck
//an index to the next card in the array
//a constructor initializing the array indices to Ace-king in each suit
//a function using random numbers to shuffle our deck of cards
//13 void functions to print each card
class cards
{
private:
Acard Deck[52];
int NextCard;
public:
cards();
Acard getCard();
void shuffleDeck();
void cardAce(char[]);
void cardTwo(char[]);
void cardThree(char[]);
void cardFour(char[]);
void cardFive(char[]);
void cardSix(char[]);
void cardSeven(char[]);
void cardEight(char[]);
void cardNine(char[]);
void cardTen(char[]);
void cardJack(char[]);
void cardQueen(char[]);
void cardKing(char[]);
};
#endif
I’m having lots of errors in my final project (a poker and black jack sim). I’m using a vector to implement the «hands» in the blackJack class, and I’m using a structured data type declared in another class, which is publicly inherited. The error I’m worried about is the compiler I’m using telling me that I’m not declaring a type in the vector.
blackJack header file:
#ifndef BLACKJACK_H
#define BLACKJACK_H
#include <vector>
#include "card.h"
class blackJack: public cards
{
private:
vector <Acard> playerHand;
vector <Acard> dealerHand;
public:
blackJack();
void dealHands();
void hitOrStay();
void dealerHit();
int handleReward(int);
void printHands();
};
#endif
card header file (this is the class black jack inherits from):
#ifndef CARD_H
#define CARD_H
const char club[] = "xe2x99xa3";
const char heart[] = "xe2x99xa5";
const char spade[] = "xe2x99xa0";
const char diamond[] = "xe2x99xa6";
//structured data to hold card information
//including:
// a number, representing Ace-King (aces low)
//a character, representing the card's suit
struct Acard
{
int number;
char pic[4];
};
// a class to hold information regarding a deck of cards
//including:
//An array of 52 Acard datatypes, representing our Deck
//an index to the next card in the array
//a constructor initializing the array indices to Ace-king in each suit
//a function using random numbers to shuffle our deck of cards
//13 void functions to print each card
class cards
{
private:
Acard Deck[52];
int NextCard;
public:
cards();
Acard getCard();
void shuffleDeck();
void cardAce(char[]);
void cardTwo(char[]);
void cardThree(char[]);
void cardFour(char[]);
void cardFive(char[]);
void cardSix(char[]);
void cardSeven(char[]);
void cardEight(char[]);
void cardNine(char[]);
void cardTen(char[]);
void cardJack(char[]);
void cardQueen(char[]);
void cardKing(char[]);
};
#endif
i have this error in the title:
here class declaration of variables and prototypes of function
#ifndef ROZKLADLICZBY_H
#define ROZKLADLICZBY_H
class RozkladLiczby{
public:
RozkladLiczby(int); //konstruktor
vector<int> CzynnikiPierwsze(int); //metoda
~RozkladLiczby();
};
#endif
And class body:
#include "RozkladLiczby.h"
using namespace std;
#include <iostream>
#include <vector>
RozkladLiczby::~RozkladLiczby() //destruktor
{}
RozkladLiczby::RozkladLiczby(int n){
int* tab = new int[n+1];
int i,j;
for( i=0;i<=n;i++)
tab[i]=0; //zerujemy tablice
for( i=2;i<=n;i+=2)
tab[i]=2; //zajmujemy sie liczbami parzystymi
for(i=3; i<=n;i+=2)
for(j=i;j<=n;j+=i) //sito erastotesa
if(tab[j]==0)
tab[j]=i;
}
vector<int> RozkladLiczby::CzynnikiPierwsze(int m){
vector<int> tablica;
while(m!=1){
tablica.push_back(tab[m]);
m=m/tab[m];
}
return tablica;
}
Whats wrong with the prototype of function in first block? Why vector is told to be not a type? I would be grateful if u could help me to find out this.
asked Mar 22, 2014 at 12:25
Your header file does not include the vector header. Add a #include <vector>
to the beggining.
Besides, you should refer to it as std::vector<int>
instead of vector<int>
, since it belongs to the std
namespace. Declaring using namespace x;
in header files is not a good practice, as it will propagate to other files as well.
Shoe
74.7k35 gold badges165 silver badges269 bronze badges
answered Mar 22, 2014 at 12:31
0
Change your header file to:
#ifndef ROZKLADLICZBY_H
#define ROZKLADLICZBY_H
#include <vector>
class RozkladLiczby{
public:
RozkladLiczby(int); //konstruktor
std::vector<int> CzynnikiPierwsze(int); //metoda
~RozkladLiczby();
private:
int* tab;
};
#endif
answered Mar 22, 2014 at 12:29
πάντα ῥεῖπάντα ῥεῖ
87k13 gold badges114 silver badges189 bronze badges
8
0 / 0 / 0 Регистрация: 06.09.2017 Сообщений: 114 |
|
1 |
|
01.11.2017, 21:59. Показов 5010. Ответов 67
Доброго времени суток форумчане!
0 |
7535 / 6397 / 2917 Регистрация: 14.04.2014 Сообщений: 27,863 |
|
01.11.2017, 22:05 |
2 |
Ты заголовок подключил?
0 |
0 / 0 / 0 Регистрация: 06.09.2017 Сообщений: 114 |
|
01.11.2017, 22:10 [ТС] |
3 |
Какой заголовок? Заголовочный файл? Как эти файлы работают я не особо понимаю…
0 |
7535 / 6397 / 2917 Регистрация: 14.04.2014 Сообщений: 27,863 |
|
01.11.2017, 22:44 |
4 |
<vector> подключил?
0 |
0 / 0 / 0 Регистрация: 06.09.2017 Сообщений: 114 |
|
01.11.2017, 22:45 [ТС] |
5 |
да но не работает…
0 |
7535 / 6397 / 2917 Регистрация: 14.04.2014 Сообщений: 27,863 |
|
01.11.2017, 22:46 |
6 |
Показывай.
0 |
SkeiTax 0 / 0 / 0 Регистрация: 06.09.2017 Сообщений: 114 |
||||
01.11.2017, 22:49 [ТС] |
7 |
|||
Вот как я создаю вектор
вот что выводит компилятор «…|error: ‘vector’ does not name a type|» Добавлено через 1 минуту Это всё сообщение после сборки…
0 |
7535 / 6397 / 2917 Регистрация: 14.04.2014 Сообщений: 27,863 |
|
01.11.2017, 22:49 |
8 |
std::vector сделай. Если не заработает, значит ты не подключил заголовок.
0 |
SkeiTax 0 / 0 / 0 Регистрация: 06.09.2017 Сообщений: 114 |
||||
01.11.2017, 22:54 [ТС] |
9 |
|||
Оп… Точно, чего-то не думал что в этом может быть проблема Добавлено через 55 секунд Добавлено через 1 минуту
Когда пытаюсь обратиться из объекта класса Circle к этой функции выдаёт ошибку
0 |
7535 / 6397 / 2917 Регистрация: 14.04.2014 Сообщений: 27,863 |
|
01.11.2017, 22:56 |
10 |
Текст ошибки где?
0 |
SkeiTax 0 / 0 / 0 Регистрация: 06.09.2017 Сообщений: 114 |
||||||||||||
01.11.2017, 22:59 [ТС] |
11 |
|||||||||||
В главном методе создаю окно
Потом создаю объект одного из класса Circle/Circle2
В классе Circle я в методе Step() есть такое условие
и в итоге выдаёт ошибку: «…|error: cannot convert ‘sf::RenderWindow**’ to ‘sf::RenderWindow*’ for argument ‘2’ to ‘int mouse_xy(bool, sf::RenderWindow*)’|»
0 |
7535 / 6397 / 2917 Регистрация: 14.04.2014 Сообщений: 27,863 |
|
01.11.2017, 23:04 |
12 |
Тип второго параметра не верный. Может, там другой window?
0 |
SkeiTax 0 / 0 / 0 Регистрация: 06.09.2017 Сообщений: 114 |
||||
01.11.2017, 23:07 [ТС] |
13 |
|||
вот часть кода в Circle2
0 |
7535 / 6397 / 2917 Регистрация: 14.04.2014 Сообщений: 27,863 |
|
01.11.2017, 23:08 |
14 |
Ну так зачем ты двойной указатель передаёшь? Убери амперсанды.
0 |
SkeiTax 0 / 0 / 0 Регистрация: 06.09.2017 Сообщений: 114 |
||||
01.11.2017, 23:11 [ТС] |
15 |
|||
хорошо но тогда ошибка тоже… сейчас покажу Добавлено через 1 минуту Добавлено через 1 минуту
0 |
7535 / 6397 / 2917 Регистрация: 14.04.2014 Сообщений: 27,863 |
|
01.11.2017, 23:13 |
16 |
Там же всё написано. Redefenition — ты два раза одну и туже функцию описал, что ли?
0 |
SkeiTax 0 / 0 / 0 Регистрация: 06.09.2017 Сообщений: 114 |
||||
01.11.2017, 23:21 [ТС] |
17 |
|||
В смысле? Добавлено через 1 минуту
Добавлено через 3 минуты
0 |
7535 / 6397 / 2917 Регистрация: 14.04.2014 Сообщений: 27,863 |
|
01.11.2017, 23:22 |
18 |
0 |
SkeiTax 0 / 0 / 0 Регистрация: 06.09.2017 Сообщений: 114 |
||||||||||||
01.11.2017, 23:35 [ТС] |
19 |
|||||||||||
координату курсора мышки относительно окна window * Добавлено через 2 минуты Добавлено через 1 минуту
Все подключения в Circle2.cpp
И Include.h
Добавлено через 3 минуты Добавлено через 41 секунду Добавлено через 3 минуты
0 |
7535 / 6397 / 2917 Регистрация: 14.04.2014 Сообщений: 27,863 |
|
01.11.2017, 23:40 |
20 |
Если там указатели, просто delete и присваиваешь другой. От массива не отличается.
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
01.11.2017, 23:40 |
Помогаю со студенческими работами здесь Классы, объекты Классы и объекты КЛАССЫ И ОБЪЕКТЫ Рациональная (несократимая) дробь представляется парой целых чисел (а, b), где… Классы и объекты Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 20 |
I have a mysterious problem. I keep getting a ‘vector’ does not name a type error when trying to define a variable in the tour class. The library seems installed correctly, since I can define vectors in main. According to many posts here I have checked for the right vector includes and std namespace. Still I get the error.
main.cpp
#include <vector>
#include <iostream>
#include <cstring>
#include <stdio.h>
#include <time.h>
#include <math.h>
#include <cmath>
#include <cstdlib>
#include "tour.h"
using namespace std;
int main () {
//vector declaration works here
return 0;
}
tour.h
#ifndef TOUR_H_
#define TOUR_H_
#include<vector>
using namespace std;
class tour
{
public:
//variables
int teamID;
vector<int> tourseq; //this is where the error occurs
//functions
tour(int);
};
#endif /* TOUR_H_ */
tour.cpp
#include<vector>
#include "tour.h"
using namespace std;
tour::tour(int id){
teamID = id;
}
What could be wrong here?