0

I am trying to code a game of Black Jack for a class and we need to use header files and multiple .cpp files. I have the code figured out but I am having trouble calling the functions within my main function. The code is posted below. It is all in the same folder so I don't think that is the problem. I am trying to learn how to call any of these functions within my main (BlackJackMike.cpp). The error I keep getting is

"LNK2019 unresolved external symbol "public: int __thiscall Card::getcValue(void)const " (?getcValue@Card@@QBEHXZ) referenced in function _main BlackJackMike C:\Users\merisman96\source\repos\BlackJackMike\BlackJackMike\BlackJackMike.obj"

I have searched around but still cant fix this error. Any help would be great!!! Thanks!!!

O and also I am using Visual Studio 2017 I don't know if that means anything.

BlackJackMike.cpp where my main is at

#include "stdafx.h"
//#include "Deck.h"
#include "Card.h"

using namespace std;
int main()
{
    Card C; //not to sure what happens here but I know I need it
    C.getcValue(); //Attempting to call the function getcValue() from my card class

    return 0;
}

Card.h

#pragma once
#include <iostream>
#include <vector>
#include <algorithm> 
#include <ctime>
#include <sstream>
#include <string>
#include <limits>
#include <random>

using namespace std;

class Card {
    char card;
    int cValue;
    int cSuite;
    string cSName;
    bool isCardMade;
public:
    Card() {};
    Card(char, int);
    //Card(const Card&);
    int assignCV();
    int getcValue()const;
    int getCSuite()const;
    string getCName()const;
    bool getIsCardMade()const;
    char getCard()const;
    void setIsCardMade(bool x);
    void nameCard();
};

Card.cpp

#include "Card.h"

Card::Card(char Value, int suite)
{
    card = Value;
    cValue = assignCV();
    cSuite = suite;
    isCardMade = false;
}

//Card::Card(const Card & card1)
//{
//  card = card1.getCard();
//  cValue = card1.getcValue();
//  cSuite = card1.getCSuite();
//  cSName = card1.getCName();
//  isCardMade = card1.getIsCardMade();
//}

int Card::assignCV()
{
    if (card == 'A')
        return 11;

    else if (card == 'T' || card == 'J' || card == 'Q' || card == 'K') // here we see 'T' as 10 being assigned the value of 10
        return 10;
    else
        return (card - '0');
}

int Card::getcValue() const
{
    cout << "Ran getcValue" << endl;
    return cValue;
}

int Card::getCSuite() const
{
    return cSuite;
}

string Card::getCName() const
{
    return cSName;
}

bool Card::getIsCardMade() const
{
    return isCardMade;
}

char Card::getCard() const
{
    return card;
}

void Card::setIsCardMade(bool x)
{
    isCardMade = x;
}

void Card::nameCard()
{
    switch (cSuite) {
    case 0: cSName = "Spades";
        break;
    case 1: cSName = "Clubs";
        break;
    case 2: cSName = "Hearts";
        break;
    case 3: cSName = " Diamonds";
        break;
    }
    if (card == 'A')
        cout << "Ace";
    else if (card == 'J')
        cout << "Jack";
    else if (card == 'Q')
        cout << "Queen";
    else if (card == 'K')
        cout << "king";
    else if (card == 'T') // We see that once again the 10 is stored as a 'T'
        cout << "10"; // and that it is being printed as '10'
    else
        cout << cValue;
    cout << " of " << cSName << endl;
}
  • 3
    Are all of the cpp files included in your project? Being in the same folder on your hard drive is not enough. – Retired Ninja Oct 07 '17 at 23:28
  • I did and I got a new error : Error C1010 unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source? BlackJackMike c:\users\merisman96\source\repos\blackjackmike\blackjackmike\blackjackmike.cpp – Michael Erisman Oct 07 '17 at 23:30
  • @RetiredNinja How would I do that cause that's probably the problem. – Michael Erisman Oct 07 '17 at 23:32
  • 1
    @MichaelErisman The C1010 error pretty clearly tells you what the problem is *and* how to fix it. – cdhowie Oct 07 '17 at 23:41
  • So that was the problem @RetiredNinja!!!! Thank you so much!!! – Michael Erisman Oct 07 '17 at 23:54
  • Ya I'm working through them now @cdhowie, there was around 36 in one section of code so I'm tiring to find them but the code runs now for the most part thanks yall!! – Michael Erisman Oct 08 '17 at 00:01

0 Answers0