[UE4插件使用-問題合集-02] error C4458: declaration of 'ModuleIndex' hides class member 函數參數使用的參數名字與所在類中的某個變量名字重名了


error C4458 函數參數名與所在類的變量名重名

問題描述:

 

 

 

解決過程:

  1. 我這邊報錯的那行是宏定義,所以要找到宏定義處,是放到另一文件中的,可以看到這個宏定義是定義了函數的:

 

 

  1. 可以看到這個函數形參有一個是"ModuleIndex",沒錯,就是它與類中某個變量同名的。類中的那個同名變量我這里就不找了,你們知道就行了。實際上這樣的C++語法是沒有問題的,內層作用域中與外層作用域中同名的變量會隱藏外層的同名變量,但可能同樣是版本的原因,新版本的UE4(我這里是4.24)對於這種情況視為錯誤,不允許編譯通過(有了解詳細情況的可以留言告訴我)。

  2. 知道原因就好辦了,我們只要更改這個函數的ModuleIndex形參名以及函數中使用到它的地方就好了(Agreement.ModuleIndex不用改)。我改成了"ModuleIndex1":

 

 

結果:

新版本的UE4可能不允許嵌套作用域中的重名變量,會報error C4458,更改變量名即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM