[ 프로그래밍 기초 ] C/C++ 화살표(->) 와 도트(.)의 차이

THIST·2024년 9월 5일
post-thumbnail

위 둘은 클래스나 구조체에서 멤버변수를 사용할 때 이용하는 연산자들 이다.
즉, 무언가를 접근할 때 사용하는 연산자로 쓰인다.

도트연산자( . )

  • 포인터가 아닌 객체나 멤버변수에 직접적으로 사용한다.

화살표연산자 ( -> )

  • 포인터인 객체의 멤버변수에 간저벅으로 접근할 때 사용한다.

아래에 예시를 보자.

#include<iostream>
using namespace std;

class Account {
	public:
		const char* name = "홍길동";
		const char* Account_Number = "293-685-233-574639";
		int balance = 9870;
};

struct User {
	public:
		const char* UserName = "돈내놔";
		const char* Job = "전사";
		int Level = 58;
};

int main(void) {
	// MyClass 클래스선언
	Account MyClass;
	
	// .(도트)는 클래스의 맴버에 직접적으로 접근할 수 있다.
	cout << MyClass.name << endl;
	cout << MyClass.Account_Number << endl;
	cout << MyClass.balance << endl;

	// MyUser 구조체선언
	User* MyUser = new User();

	// ->(화살표)는 구조체의 멤버에 간접적으로 접근할 수 있다.
	cout << MyUser->UserName << endl;
	cout << MyUser->Job << endl;
	cout << MyUser->Level << endl;

	delete MyUser;

	return 0;
}

포인터 객체인데, 도트연산자( . )를 사용한다거나,
포인터객체가 아닌데 화살표 연산자( -> )를 사용하면 에러가 발생한다.

만약 본인이 정말 도트연산자를 사용하고 싶다면

MyUser -> UserName

다음과 같이 사용하면 된다.

(*MyUser).UserName
profile
하고 싶은 개발을 지향하는 삶을 추구합니다:D

0개의 댓글