inflearn logo
강의

講義

知識共有

C++とUnrealで作るMMORPGゲーム開発シリーズ Part1: C++プログラミング入門

マルチポインタ

이중 포인터 질문

319

alsry1565424

投稿した質問数 17

0

이중포인터 변수에게 개체멤버가 지닌 포인터 변수의 주소를 넘기려하는데 오류가 나서 질문드립니다.
포인터변수인 멤버변수가 private으로 닫아놓고 GetAddress.
예로들어
private Node* address - 멤버변수
public Node* GetAddress() { return address } -멤버함수
-  방식입니다.
이것을
Node* node = ~~
Node** dbAddress = &(node->GetAddress());
라는 코드를 작성하면

오류코드 : error C2102: '&'에 l-value가 있어야 합니다. 그리고 식은 lvalue 또는 함수지정자가 있어야합니다. 라고뜨는데 포인터변수의 주소를 넘기는건데 이게 왜 오류가나는지 궁금합니다

C++

回答 2

1

Rookiss

해당 부분은 강의 후반에 나오는 왼값/오른값(lvalue vs rvalue)를 알아야 해서,
일단은 넘어가시길 바랍니다.
짧게 요약하자면 오른값은 int a = 3; 와 같은 식에서
오른쪽에 오는 ( = 3) 애들을 말하는데
오른값에는 &3와 같은 문법을 허용하지 않습니다.

0

alsry1565424

음 멤버 포인터 변수를 반환하는데도 rvalue인가요?

Node** dbAddress = &(node->GetAddress()); 가

Node** dbAddress = &(address);의 형태가 안된다는걸까요?

단순하게 멤버를 private이 아닌 public으로해 직접적으로 접근하면 오류가 나질 않아서 헷갈리네요..

0

Rookiss

node->GetAddress() = new Node(); 가 통과되지 않고
Node* node = node->GetAddress(); 는 통과되니,
GetAddress()의 반환은 오른값이라는 것을 알 수 있습니다.

visualstudio에서 파일분할관리실습시 설정 문의를 드립니다.

0

542

1

정렬함수 좀 더 확실하게 이해 할 방법이 있을까요?

0

443

1

strcpy() 구현 관련 질문

0

513

1

빌드(망치)를 누르니 이런 오류가 떴습니다. 어떻게 해야 하나요?

0

453

1

클래스 타입의 포인터 질문합니다

0

548

1

입력값을 enum 값에 넣어주는거 이제 막혔나요?

0

499

1

템플릿 특수화 관련 질문

0

385

1

포인터 관련 질문합니다!

0

266

1

Unable to start assembler. Check your settings.

0

832

2

cpu선택

0

540

1

포인터 질문이 있습니다

0

325

1

20:35 에서 구조체 크기에 대한 질문입니다!

0

586

1

iterator 삭제관련

0

408

1

함수 호출을 디스어셈블러로 분석하다가 궁금점이 생겼습니다!

0

311

1

15 분 45초 대 질문

0

310

0

스택 프레임 질문합니다!

2

307

1

오른값 참조 in 게임

0

384

0

동적할당 질문이 있습니다

0

452

1

안녕하세요 메모리에 대해 질문드립니다.

0

306

1

함수객체 의 매개변수

0

360

1

복사생성자

0

435

1

main이나 endl 부분이 주황색으로 표시된건 어떻게 하나요

0

421

1

포인터 실습 강의를 보고 궁금한게 있습니다.

0

357

1

스택 오버플로우

2

791

1