Καλησπέρα! Καλή χρονιά, με υγεία και χαρές σε όλους! Έχω μαζέψει με τον καινούργιο χρόνο κάποιες απορίες λύνοντας ασκήσεις του βιβλίου τις οποίες θα θέσω σε λίγα διαδοχικά threads, ξεκινώντας από αυτό. Έχω έναν κώδικα από άσκηση του βιβλίου (συγκεκριμένα του Χατζηγιαννάκη, σελ. 497, άσκηση 14.21) η οποία θέλει να δημιουργήσουμε μια τράπουλα με 52 κάρτες. Ο κώδικας που έφτιαξα δίνεται παρακάτω ωστόσο κολλάω σε δύο πράγματα στα οποία θα ήθελα μια μικρή(?) βοήθεια:
α) Θέλω αυτά που έχει στη main, όπου δίνουν τιμές στις μεταβλητές μέλη για τη δημιουργία των καρτών, να τα βάλω στον constructor της κλάσης trapoula. Μια ιδέα πως να το κάνω αυτό και να δουλέψει; Επίσης, έχω μπλέξει λίγο τον constructor της κλάσης trapoula αφού χρησιμοποιώ μεν τις κάρτες από την κλάση card ωστόσο τον αριθμό των καρτών τον έχω βάλει (αδίκως?) στον contructor της κλάσης trapoula.
β) Θέλω αντί να χρησιμοποιήσω strings να χρησιμοποιήσω enums, ωστόσο δεν ξέρω πως να δημιουργήσω getters και setters, αλλά και πως να φτιάξω τον constructor με τη xρήση των enum. Κάποια βοήθεια;
// Headers
#include <iostream>
#include <string>
// Namespace
using namespace std;
class card_deck {
int cards{};
public:
card_deck() {};
card_deck(int n) : cards(n) {};
card cards[52];
// Card shuffle method
void cardshuffle(card cards[52]) {
for (int i = 0; i < 52; i++)
{
// Random for remaining positions
int r = i + (rand() % (52 - i));
// Swap cards within the card deck
swap(cards[i], cards[r]);
}
};
void display(card cards[52]) {
for (int i = 0; i < 52; i++)
cout << cards[i].get_ctype() << " " << cards[i].get_cfigure() << " "; //Print card deck cards
cout << endl;
};
}carddeck[2];
class card {
string card_type{};
string card_figure{};
public:
card() {};
card(string t, string f) : card_type(t), card_figure(f) {};
void set_prop(string t, string f) { card_type = t; card_figure = f; };
string get_ctype() { return card_type; };
string get_cfigure() { return card_figure; };
}cards[52];
int main()
{
// Απο εδώ και κάτω θέλω να μεταφερθεί στον constructor της κλάσης trapoulas
int i;
for (i = 0; i < 52; i++) {
string k, l;
cout << " Give card type" << endl;
cards[i].set_prop(k,l);
}
for (i = 0; i < 52; i++) {
cout << " Card type is" << endl;
cards[i].get_ctype();
cards[i].get_cfigure();
}
return 0;
}