我來自Java方面,如果你想檢查一個ArrayList
中的特定條目是否被分配,你會得到ArrayList
中實體的引用並檢查它是否爲空。如何檢查指針指向的對象是否爲空?
基本上我試圖完成同樣的事情。這裏是我的代碼的簡化版本:
struct node
{
int count=0;
int nodeval=0;
bool valid=false;
};
bool operator==(const node* n,int val)
{
if (n->count==0&&n->nodeval==0&&n->valid==false)
if(val==NULL)
return true;
else
return false;
}
node* lookup(int val)
{
return &Table[val];
}
int main()
{
res=somevalue;
node* child=lookup(res);
if(child==NULL)
{
//do something
}
}
這是我的理解:
lookup()
是否會返回我選擇位置的地址表中的數據結構。我把它存儲在孩子身上。- 檢查孩子的空指針沒有意義,因爲我們返回一個適當的內存位置引用,所以我重載它。
- 在重載
==
中,我檢查每個字段是否未更改,如果它未更改,則爲'空實體'。問題是==
運算符需要一個用戶定義的對象來操作。
問題:
- 我是怎麼拿錯在前面提到的步驟?
- 有沒有更簡單的方法來檢查指針指向的對象是否未更改/ null?
你爲什麼重載操作符?只要檢查指針是否爲NULL。不需要操作員超載。另外 - ** C++不是Java **。不要試圖模仿C++中的Java代碼或技術。 – PaulMcKenzie
@PaulMcKenzie ,,當我做&表[val]我指的是位置(表0 + val)地址,這恰好是一個分配的內存,我返回它,現在這將如何幫助我檢查空值? – BigDataScholar
什麼* type *是表格? – Galik