Bug: class field modified by reference
이전 댓글 표시
There is a major bug in Matlab in which the field of a class is modified when passed as an function argument but not requested as an output if the calling function modifies the value internally. In the minimal example below: b.value is not the same before and after calling test.
b.value = 10;
b.value,
a = test(b);
b.value
function a = test(b)
a=1; b=b.value*10;
end
댓글 수: 3
Walter Roberson
2018년 6월 1일
I am not seeing anything when I test your code in R2018a.
If b was being modified by the code you post, then it would no longer be a struct (because you are writing over all of b), and b.value would then be a failure.
Your question talks about "field of a class", but your demonstration involves a struct rather than a class.
Antonio Mei
2018년 6월 1일
Walter Roberson
2018년 6월 1일
Please post actual example including classdef
채택된 답변
추가 답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Construct and Work with Object Arrays에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!