class
class MyClass { int x; void function(); };
객체지향 : object로 프로그래밍(c++,java...)
객체 : 대상 (사과 사람 핸드폰 ...)
개체(entity)와는 다름
현실에서 묘사할 수 있다면 그것을 프로그래밍의 세계로 가져와서 개념화 해보자는 것에서 출발
정렬을 할 때 하나의 객체인 A가 하는 것에 초점
핸드폰이 객체라고 한다면
브랜드 - 삼성,애플 ,화웨이
크기 - 10cm, 20cm
무게 - 1kg...
통화하기()
메시징()
통신()
두 가지 카테고리를 나눌 수 있음 상태(state) 와 행동(behaviour)
상태 : 변수 ->열거형도 어울림
행동 : 함수
객체가 스스로 라이프사이클을 관리하기 위한 것
1.constructor (생성자) : 객체가 만들어 질 때 사용되는
2.destructor (소멸자) :객체가 사라질 떄 사용되는
static Member
static : 한 번 만들어지면 프로그램 종료까지 살아 있는
static member : 클래스에 들어가는 변수 시스템
abstract class
- 선언만 있는 클래스
- 인터페이스와 관련있는 개념
- 규격을 만들어냄
- api / ui / gdi / hdmi(hi-definition multi-media interface) / usb도 인터페이스 개념
- ui : 프로그램과 유저 사이의 정해진 약속
overloading vs overriding
- overloading(중복적재)
매개변수만 다르게해서 여러개의 행동을 만듦- overriding(재정의)
부모의 행동을 자식이 재정의- operator overloading
class->instance를 만들기
타입->오브젝트 만들기
class 선언
class<클래스이름> { [접근제한자]//[]는 생략이 가능하다라는 뜻 <멤버> . . . }[객체이름]; _____________________________________________ class Smartphone { //상태(member variables) char *brand; int width; int height; //행동(member functions) void Call(int number); void Message(int number); }; int main() { Smartphone galaxy22; Smartphone iphone14; //int x; 와 같은 느낌 //타입대신에 직접 만들어낸것 + 구체적인사례(인스턴스)를 만듬 }
접근 제한자(access Modifier)
클래스와 인스턴스
smartphone(클래스) galaxy(인스턴스)
범위 해결 연산자 ::
멤버함수 시그니처
클래스 :: 멤버함수( )
인스턴스에 대한 암시적 객체(implicit object)
this (포인터임)
Naming Rule
클래스 이름 : 파스칼 표기법(MyCat,SmartPhone)
멤버 변수 : m을 붙여서 멤버라는 것을 명시(mWidth,mHeight)
멤버 함수 : 파스칼 표기법
DoSomething(),Attack()
언리얼 문서나 c++ 문서보기
visual studio 클래스 추가 하기로 헤더파일+cpp파일 조합을 완성할 수 있음