CONST 참조 동적 배열 구조체 전달 aFoo.p[]
은 함수로 수정할 수 없습니까?I는 C의 구조체가 있다면
int func(foo const& aFoo) { ... }
을 선언하면 포인터 aFoo.p
을 수정하려고하면 컴파일러 오류가 발생하지만 수정하려고 시도하면 안됩니다 (예 : aFoo.p[0]
). 또한 새 포인터 int* p2 = aFoo.p
을 할당하고 그 값을 aFoo.p[]
으로 수정하는 것도 허용됩니다. 난 그냥 포인터를 전달한다면
, 나는이 통과 int* const& p
와 const int* const& p
의 차이가 될 것입니다 생각하지만, 나는 (구조체 정의의 const int*
로 회원 p
을 선언하지 않고이 상황에서 그것을 할 방법을 잘 모르겠어요 이는 코드의 다른 부분에서 문제를 일으킬 수 있습니다.)
당신은'INT를 변경하는 경우 그 * (컴파일러 에러로)
라이브 예 : 다음 코드는이 보여줍니다 'std :: vector :: p;' –
Jarod42
'typedef struct foo' C++을 사용한다면 이것은 필요하지 않습니다. 필요한 것은'struct foo'뿐입니다. – PaulMcKenzie