C++ 구조체, 클래스, 객체 (저장용,메모용, 윤성우 열혈 C++ 프로그래밍 정리 CH 3)

RisingJade의 개발기록·2022년 2월 14일
1

1. 구조체

  • c++의 구조체는 typedef 없이 구조체 변수 생성이 가능하다
  • c++의 구조체는 내부에 함수를 정의 할 수 있다. 단, 이때 내부 함수는 inline 취급이다. 그게 싫으면 밖으로 빼서 써라
struct Car{
	char driver[NAME_LEN];
    int fuelGauge;
    int curSpeed;
    
    void ShowCarState(){// 이런식으로 함수 정의 가능
    	cout<< "name: " << driver << endl;
        cout<< "gas: " << fuelGauge << endl;
        cout<< "speed: " << curSpeed << endl;
    } 
}
Car bmw; // struct Car bmw X -> Car bmw O: 따로 struct를 안붙여도 된다. typedef 안해도 된다.

2. 클래스와 객체

  • 기본적으로 접근제어 지시자를 선언하지 않으면 class 내부의 변수와 함수는 private이 된다.
  • 아래와 같이 private나 public에 ':'(콜론)이 붙는 이유는 접근제어 지시자가 특정 위치정보를 알리는 레이블(라벨)이기 때문이다.
    public:
    	int a;
        int b;
    private:
    	int c;
        int d;
  • 클래스와 관련된 문장의 컴파일 정보로 사용되는 '클래스의 선언'은 헤더파일에 저장해서, 필요한 위치에 쉽게 포함될 수 있도록 해야 한다.
  • '클래스의 정의'는 소스파일에 저장해서, 컴파일이 되도록 하면 된다.
  • 인라인 함수는 함수 호출문이 있는 곳에 함수의 몸체 부분이 삽입되어야 하므로, 인라인 함수 선언과 동일한 파일에 저장되어서 컴파일러가 동시에 참조할 수 있게 해야한다.
  • 클래스 변수를 지정할 때
    SimpleClass sc; // 전역 변수, 지역 및 매개변수의 형태 -> stack or data쪽에 넣는것
    SimpleClass * sc = new SimpleClass(10);//(생성자에 int가 필요할때) heap에 넣는것-> 동적할당

3. 객체지향 프로그래밍의 이해

  • 객페지향 프로그래밍은 현실에 존재하는 사물과 대상, 그리고 그에 따른 행동을 있는 그대로 실체화 시키는 형태의 프로그래밍이다.
  • 객체는 하나 이상의 상태 정보(데이터)와 하나 이상의 행동(기능)으로 구성된다.
profile
언제나 감사하며 살자!

0개의 댓글