여기에 사용 된 function1
, Root
, class1
및 class2
의 이름은 가상의 것이며 코드에는 존재하지 않습니다. 그들은 실제 이름을 숨기기 위해 여기 있습니다. 그러나 파일 시스템에서 파일이 어떻게 폐기되고 호출되는지를 명시합니다.다른 폴더에서 같은 이름으로 Octave에서 함수 오버로드를 해결하는 방법은 무엇입니까?
- 는
Root
,Root/class1
및Root/class2
라는 폴더가 있습니다. Root/class1/function1.m
및Root/class2/function1.m
이라는 파일이 있습니다.- 이 파일에는 각각
function function1(A)
및function function1(A, B)
기능이 있습니다. 이제
나는 파일을 실행 폴더 Root/class2
오전은 system.m
라고 내가 할 :
addpath('../class1')
function1(A)
그리고 대신 전화의 기능 function function1(A)
파일에서 파일 Root/class2/function1.m
에서 기능 function1(A, B)
를 호출하려고 Root/class1
, 오류 출력 :
error: 'B' undefined near line 4 column 27
방법 파일에서 기능
function function1(A)
를 호출을
Root/class2
폴더에서 파일을 실행하는 동안 현재 "컨텍스트"에서 함수가 오버로드됩니까?
다른 폴더에서 함수를 호출하고 싶지만, 거기에는 현재 폴더 내의 함수와 같은 이름이 있습니다.
두 개의 다른 함수에 대해 동일한 함수 이름을 사용하지 않을 것을 제안하는 것이 너무 간단하다고 생각하십니까? – Adriaan
함수의 이름을 function이라는 이름으로 지정하지 않아도됩니다 ... –
@RockNinja [XY 문제] (http://xyproblem.info)의 경우에 대비하여 실제로 달성하려는 것은 무엇입니까? 네임 스페이스를 도입하는 방법은 여러 가지가 있습니다. 그 중 ...하려고 생각하는 것이 있다면 ... –