저는 Java와 C#에 익숙하며 C++로 내 지평을 넓히고 싶습니다.C++ 액세스 멤버 및 함수
그러나 개체 또는 개체의 메서드에 액세스 할 때 ->
또는 .
연산자를 사용하는 경우를 이해하는 데 어려움이 있습니다.
저는이 질문을하는 첫 번째 사람이 아니라고 확신합니다. 거기에 같은 문제를 해결하기 위해 많은 질문이 있지만, 난 단지 내 특별한 경우에 제공된 답변을 연결할 수 없습니다.
내가
는Stock
라고하는 매우 간단한 클래스가 :
class Stock
{
public:
int32_t value;
string name;
Stock(void);
~Stock(void);
void doStuff();
};
내가 객체가 힙에 할당하면 나는 그것이 스택 공간에있는 경우 ->
및 .
을 사용한다는 것을 알고있다. 나는 Stock
객체의 이름 문자열의 길이를 인쇄하기를 원한다면
그러나 나는 같은 것을 할 필요가있을 것이다 :
Stock* bmw = new Stock;
bmw->name = "BMw";
cout << bmw->name.length() << endl;
주식의 이름을 통해 액세스 할 수 있습니다 "->"연산자 , "."을 통한 이름의 길이 운영자. 내 견해로는이 두 객체 (주식과 문자열)가 힙 공간에 있기 때문에 -> 연산자 만 필요할 것입니다.
무엇이 여기에 있습니까? 문자열과는 어떤 관계입니까? 나는 thougt 문자열은 항상 포인터입니다 ... 조금만 움직이고있는 개념을 설명해 주시겠습니까?
답장을 미리 보내 주셔서 감사합니다. 당신이 포인터, .
를 사용하는이 때 당신이 예를이있을 때
마르쿠스
시작 [여기] (https://stackoverflow.com/q/388242/241631). C++을 배우는 가장 좋은 방법은 좋은 책을 읽기 시작하는 것입니다. – Praetorian
'bmw'를 포인터로 만들지 않았다면'.' 연산자로 멤버에 접근 할 수 있습니다. '-> '연산자는 멤버를 역 참조하고 접근한다. –