簡體   English   中英

成員函數返回函數

[英]Member function return a function

a* b::find() const
{
  a* pointr = head;

  return pointr;

}

這是我的代碼,但是Visual Studio在返回指針行中強調了指針嗎? 我的代碼有什么問題?

編輯:對不起的錯字

a* pointer = head;

return pointr;   

您在函數范圍內沒有任何變量被聲明為pointr ,除非聲明,否則編譯器將如何知道?

pointrpointer不相同,缺少e

假設這是一個錯字,
您的函數返回一個指針,但是在這種情況下它指向的指針很重要。 如果head是本地變量或沒有動態內存分配的指針(指向本地對象),則您的指針pointer指向的是本地對象,一旦函數返回該指針將被破壞,並且將成為懸空的指針。

記住規則:
您不應返回引用或指向函數本地變量的指針。

您返回了錯誤的變量

返回指針;

在您的代碼中。 在范圍內未定義。

暫無
暫無

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

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