Так что я только недавно начал использовать «Перегрузку встроенного оператора» или как там это называется ...... В любом случае !! Как я могу ссылаться на объект, из которого я вызываю функцию. Вот код интереса:
class PlayingCard
{
private:
enum Suit {diamond, hearts, spades, clubs};
Suit suit;
enum Color {red, black};
Color color;
int value = -1;
public:
//Inline stuff
//make card the same as c1
inline operator=(const PlayingCard &c1) {
suit = c1.suit;
color = c1.color;
value = c1.value;
return true;
}
inline operator%(PlayingCard &c1) {
PlayingCard copy1;
copy1 = c1;
c1 = this;
this = copy1;
return true;
}
Как видите, у меня есть класс PlayingCard. Первый встроенный оператор работает так же, как и должен. Если у меня есть 2 PlayingCard: c1 и c2 с определенными частными значениями c2, то c1 = c2 делает частные значения c1 равными c2.
Вторая встроенная функция предназначена для обмена значениями между c1 и c2 путем выполнения c1% c2. Как показано в коде, я надеялся использовать «this» для ссылки на c1, но это не работает. Есть ли способ обратиться к c1 в этой функции?
Я знаю, что есть обходные пути, которые я буду использовать в это время, но я бы предпочел использовать свой оригинальный метод, и я чувствую, что он будет полезен и для будущего использования.