簡體   English   中英

從另一個類訪問變量/函數

[英]Accessing variables/functions from another class

我正在制作紙牌游戲,我有一些課程。 我有一個Hand類,一個Player類,一個“Column”類(手牌后將卡放在屏幕上),我需要每個類都可以訪問其他類的變量。

class Hand
{
private:
    int **Hx,Hy;** //Hand X, Hand Y
    int HAmount;//Amount of cards in Hand
    int HOwner; //Player 1/2
    int Limit; //Limit of cards in Hand
    int HContents[8]; //Card Position in 54 card deck NOT card value.
    bool Removed;
public:
    Hand();
    void Lim();
    void Get_Card();
    void Show();
    void Set_Values(int y, int Own);
};

然后在另一個類中,我需要訪問上面的一些變量。

void Card::show()
{
    if((apply == true)
    {
        if((Track == true)&&(SelNum == TNum)&&(TOwner == COwner))
        {
            ScnPos = TAmount;
            x = Tx;
            y = Ty + ScnPos*10;
        }
        if((Hand == true)&&(**HOwner** == COwner))
        {

            x = **Hx** + ScnPos*45;
            y = **Hy;**
        }
        apply_surface(x,y,Cards,Screen,&Clip[Pos]);
    }
}

我嘗試過使用階級友誼和其他方法,但我無法使其發揮作用。 (顯然我有更多的變量需要同樣的處理)(忽略我的代碼中的任何錯誤)

代碼中的錯誤是真正的問題。 Card沒有理由訪問Hand的私人會員。 這是設計錯誤,而您的其他問題只是試圖告訴您。

那么,你應該為變量制作getterssetters 例如:

class Test {
    private: int a;
    public: int GetA() {
       return this->a;
    }
    void SetA(int a) {
       this->a = a;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM