1.클래스와 구조체의 유일한 차이점
struct Car
{
}
struct 대신에 class로 바꾸면 그냥 class임
class Car
{
}
Car run99; (0)
Car run99 = {"run99", 100, 0}; (x)
클래스는 이런 식으로 변수 선언 못함
따로 초기화하는 함수를 만들어줘야 함
접근과 관련해서 별도의 선언을 하지 않으면, 클래스 내에 선언된 변수 및 함수에 대한 접근 허용하지 않으니 접근과 관련된 지시를 별도로 내려야 함!
2.접근제어 지시자(접근제어 레이블)
1)public : 어디서든 접근허용
2)protected : 상속 관계에 놓여있을 때 , 유도클래스에서의 접근허용
3)private : 클래스 내(클래스 내 정의된 함수)에서만 접근허용
구조체와 클래스 둘 다 접근제어 지시자의 선언이 가능하고 그 의미도 동일하지만,
유일한 차이점:
접근제어 지시자를 선언하지 않았을 때 class는 private로, 구조체는 public으로 선언할 뿐임
왜 굳이 protected? => 나중에 나올 정보은닉과 관련
3.용어정리: 객체(Object), 멤버변수, 멤버함수
구조체나 클래스는 변수라고 부르지 않고 '객체(Object)'라고 부름
그 안에 구성된 변수를 '멤버 변수', 클래스를 구성하는 함수를 가리켜 '멤버 함수'라고 부름
4.C++에서의 파일분할
C++은 클래스별로 헤더파일과 소스파일을 생성해서 클래스의 선언과 정의를 분리하는 일이 많음.
1.Car.h : 클래스의 선언을 담음
2.Car.cpp:클래스의 정의(멤버함수의 정의)를 담음
g++ -Wall main.cpp Car.cpp -o hello
인라인 함수는 헤더파일 안에 넣기!
'LANG > C++' 카테고리의 다른 글
[C++]04-1.정보은닉(Information Hiding) (2) | 2023.05.12 |
---|---|
[C++]03-3.객체지향 프로그래밍의 이해 (0) | 2023.05.12 |
[C++]03-1.C++에서의 구조체 (0) | 2023.05.12 |
[C++]02-6.C++에서 C언어의 표준함수 호출하기 (0) | 2023.05.11 |
[C++]02-5.malloc & free를 대신하는 new &delete (0) | 2023.05.11 |