Just nu i M3-nätverket
Gå till innehåll
stonnew

Problem med testning av kod.

Rekommendera Poster

Jag ska göra ett Black Jack-spel men jag får följande fel när jag ska testa koden:

 

error C2512: 'Card' : no appropriate default constructor available.

 

Jag får felet på följande plats i koden:

#include "StdAfx.h"
#include "CardDeck.h"
#include "Card.h"

CardDeck::CardDeck()
{
m_next=0;

for(int s=0; s <= 3; s++)
{
	for(int v=1; v <= 13; v++)
	{
		Card kort(s,v);
		m_card[m_next++] = kort;

	}
}
}//CardDeck

 

Card-klassen är följande:

#pragma once

#include "stdafx.h"
#include <iostream>

using namespace std;

class Card
{
public:
Card (int suite, int value);

string toString();
int getValue();
int getSuite();
bool isAce();

private:
int m_suite;//0-3 motsvarar färgerna på korten.
int m_value;//1-13, valörerna
};

 

Och konstruktorn för Card är följande:

Card::Card(int suite, int value)
{
if(suite >= 0 && suite <= 3)
	m_suite = suite;
if(value >= 1 && value <= 13)
	m_value = value;

}//Card

 

Ligger felet någonstans i ovanstående kod? Jag hittar verkligen inte felet, men som jag förstår är felet något med Card-konstruktorn? Har suttit och kollat igenom flera gånger och kommer inte vidare med programmet för jag kan inte testa det.

 

Någon hjälp med vad som kan vara fel vore väldigt tacksamt.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Hur är m_card deklarerad ?

 

Troligen måste det finnas en default-construktor (dvs en utan parametrar)

dvs: Card:Card().

 

För att "m_card[m_next++] = kort;" ska fungera måste du dessutom deklarera en copy-operator

 

dvs:

Card &Card::operator=(const Card &src)

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...