는 나는 일부 전자 파일에 다음 코드가 있습니다같은 이름의 구조체 두 개가 허용됩니까?
<'
package my_package;
struct packet {
foo() is {
print "Hello";
};
};
'>
그리고 내 정상 파일 수입이 일을 포함하여 여러 파일을, 그리고 어떤 점에서 그것은 foo는() 메서드를 호출합니다. 위의 파일 전에 상단을 가져옵니다 (난 그냥 내가 이미 "패킷"라는 구조체를하였습니다 잊었) 다른 파일에
struct packet {};
:
이제 실수로이 코드를 추가했습니다. 내가 정상 파일을로드하려고 할 때
이상하게도,이 오류가있어 :
*** Error: 'p' (of type main::packet) does not have 'foo()' method.
at line 9 in top.e
p.foo();
을하지만, 왜 foo는 정의 파일에 이미 실패하지 않았다()?
패킷에 대한 구조체 선언이 있지만 패킷이 이전 파일에서 이미 (실수로) 선언되었으므로 중복 된 형식 이름 오류가 발생하지 않은 이유는 무엇입니까? 동일한 이름을 가진 두 개의 구조체를 가질 수 있습니까?