コンパイルしようとするとこのエラーが発生します。何が起こっているのでしょうか?私はそれがmaxSizeとtopという整数に関連するものだと思います。 "int^maxSize"のようなものに変更しようとすると、配列の位置を管理するためにこれらのintを使うことはできません。どうもありがとうございました!LNK2020 tシンバルリゾルバ(06000006)AStack ::。ctor [C++/CLI]
AStack.h
#pragma once
#include "Carta.h"
#define defaultSize 2048
ref class AStack
{
private:
int maxSize;
int top;
array<Carta^>^ ListArray; //puntero a arreglo
public:
AStack();
AStack(int size) {
maxSize = size;
top = 0;
ListArray = gcnew array<Carta^>(size);
}
~AStack() { delete[] ListArray; }
void clear() { top = 0; }
void push(Carta^ pElement) {
if (top == maxSize) {
Console::WriteLine("Stack is full");
}
ListArray[top++] = pElement;
}
Carta^ pop() {
if (top == 0) {
Console::WriteLine("Stack empty");
}
return ListArray[--top]; //retorna top y despues lo decrementa
}
Carta^ topValue() {
if (top == 0) {
Console::WriteLine("Stack empty");
}
return ListArray[top - 1];
}
int length() {
return top; //largo de pila
}
};
Carta.h
#pragma once
using namespace System;
ref class Carta
{
private:
String^ cara;
String^ palo;
String^ direccion;
public:
Carta();
Carta(String^ pCara, String^ pPalo) {
cara = pCara;
palo = pPalo;
direccion = pCara + pPalo;
}
String^ print() {
return (cara + " de " + palo);
}
String^ getDireccion() {
return direccion;
}
};
Deck.h
#include <cstdlib>
#include <ctime>
#include <iomanip>
#include "Carta.h"
#include "AStack.h"
#define ARRAY_SIZE 54
using namespace System;
ref class Deck
{
private:
array<Carta^>^ deck = gcnew array<Carta^>(ARRAY_SIZE);
int posicion;
bool ya;
public:
Deck() {
ya = false;
array<String^>^ caras = { "As","Dos","Tres","Cuatro","Cinco","Seis","Siete","Ocho","Nueve","Diez",
"Jack","Dama","Rey" };
array<String^>^ palos = { "Corazon","Diamante","Espada","Trebol" };
for (int i = 0; i < ARRAY_SIZE - 2; i++) {
deck[i] = gcnew Carta(caras[i % 13], palos[i/13]);
}
deck[52] = gcnew Carta("Joker", "Negro");
deck[53] = gcnew Carta("Joker", "Rojo");
}
~Deck() {
delete[]deck;
}
void mostrar() {
for (int i = 0; i<54; i++) {
Console::WriteLine(deck[i]->print());
}
}
void mezclar() {
for (int primero = 0; primero < 54; primero++) {
int segundo = (rand() + time(0)) % 54;
Carta^ temp = deck[primero];
deck[primero] = deck[segundo];
deck[segundo] = temp;
}
}
Carta^ topCarta() {
return deck[0];
}
void cortar(int pos) {
if (pos != 0 && pos != 53) {
AStack^ pila;
for (int i = pos; i < 54; i++) {
pila->push(deck[i]);
}
for (int j = 0; j < pos; j++) {
pila->push(deck[j]);
}
for (int k = 0; k < 54; k++) {
deck[k] = pila->pop();
}
}
}
};
'AStack'と'彼らはいくつかの他の場所にいる場合を除きCarta'のデフォルトコンストラクタは、何の遺体を持っていないあなた'表示されません。 – Unimportant
C++/CLIとしてC++にタグを付けないようにしてください。 – Deduplicator