簡體   English   中英

使用指向對象的指針作為函數參數

[英]Using pointers to objects as function arguments

我目前正在為Boggle游戲制作一個基本的模擬器,現在我已經到了需要在函數調用中使用指向對象的指針的地步。 但是,我不確定如何執行此操作,到目前為止,我發現在該站點和其他地方的搜索都沒有取得成果,因為從我所看到的問題來看,有關對象指針的問題並不多。 以下是我從類調用的函數的代碼,對象的初始化以及嘗試的函數調用。 setAdjacency函數位於boggleNode類中。

void setAdjacency(boggleNode * topleft = NULL, boggleNode * top = NULL,    boggleNode * topright = NULL, 
boggleNode * left = NULL, boggleNode * right = NULL, boggleNode *  botleft = NULL, boggleNode *  bot = NULL, boggleNode *  botright = NULL){
    adjacency[0] = topleft;
    adjacency[1] = top;
    adjacency[2] = topright;
    adjacency[3] = left;
    adjacency[4] = right;
    adjacency[5] = botleft;
    adjacency[6] = bot;
    adjacency[7] = botright;             //For keeping track of which nodes  are adjacent to which other ones. 
}

這些是boggleNode中的私有變量:

private:
boggleNode * adjacency[8];
char letter;
bool isUsed;

“木板”的定義如下:

boggleNode * board = new boggleNode[16];

最后,這是我嘗試在主函數中調用鄰接函數的位置:

board[0].setAdjacency(board[1], board[4], board[5]);  

我知道當前此函數調用中的參數是引用,而它們應該是函數定義中的指針。 如何獲得函數調用和函數定義以正確對齊?

指向對象的指針的值是對象的地址。 要獲取對象的地址,您需要使用“addressof”運營商: &

board[0].setAdjacency(&board[1], &board[4], &board[5]);

我從我的一個朋友那里得到了一些幫助,並且找到了答案。 我需要使用“ addressof”運算符加上額外的括號(例如&(board [0]))。

暫無
暫無

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

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