2017-12-14 7 views
-3

코드는 표준으로 생성자를 만들 수 없습니다 : 클래스 여기에 멤버

#include "card.h" 
#include <array> 

constexpr int DECK_SIZE = 52; 

class Deck { 
    std::array<Card, DECK_SIZE> m_deck; 
public: 
    Deck(); 
    ~Deck() = default; 
    Card getCard(int index) { return m_deck[index]; } 
}; 

로 배열 를 카드가 또 다른 클래스 관련이없는 여기에있다. 지금 갑판 생성자를 만들고 싶습니다. 그러면 카드 객체 52 개를 만들어 내 배열에 할당합니다. 시도하는 것은 참조 할 : 나는 Deck.cpp로 이동이

#include "deck.h" 

Deck::Deck() {  
} 

나는 기능

삭제 참조하는 오류 '표준 : : 배열 : 배열 (무효)를'가지고 일을 시작할 때, 비록 내가 그나마 삭제 기능

정말 지금은 단지 객체를 생성하고이 배열에 할당 할 배열의 크기는 컴파일 타임에 알려져, 이해, 나는 왜 이렇게 기운 다?

그냥 ..이 카드는이 경우 actaully 관련성을 실현, 어쨌든 여기 std::array<Card, DECK_SIZE>, Card은 기본적으로 작도해야합니다 기본-구축하기 위해 코드

#include <SFML/Graphics.hpp> 

constexpr auto FILE_PATH = "res\\cards\\"; 

class Card { 
    char m_rank; 
    char m_suit; 
    int m_value; 
    sf::RectangleShape m_shape; 
    sf::Texture m_texture; 
public: 
    Card(char, char, int, std::string); 
    ~Card() = default; 

    char getRank() { return m_rank; } 
    char getSuit() { return m_suit; } 
    int getValue() { return m_value; } 
    void setValue(int p_value) { m_value = p_value; } 
    sf::Texture getTexture() { return m_texture; } 
    sf::RectangleShape getShape() { return m_shape; } 
    void setPosition(float p_x, float p_y) { m_shape.setPosition(p_x, p_y); } 
}; 

Card::Card(char p_rank, char p_suit, int p_value, std::string p_texture_file_name) 
    :m_rank(p_rank), m_suit(p_suit), m_value(p_value) { 
    m_texture.loadFromFile(FILE_PATH + p_texture_file_name); 
    m_shape.setSize((sf::Vector2f(70, 90))); 
    m_shape.setTexture(&m_texture); 
} 
+2

[MCVE]를 게시하십시오. –

답변

3

입니다. Card 클래스가 아닙니다.