[英]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.