c++ 클래스의 기본

‍정진철·2022년 9월 2일
0

C++

목록 보기
4/18

출처: 윤성우의 열혈 c++ (http://www.orentec.co.kr/teachlist/CPP_BASIC_1/teach_sub1.php)

C++ 에서의 구조체

  • 전화번호 관리 프로그램의 경우
    Data: 이름, 전화번호, 주소, 학과, 나이 등등
    기능: 입력, 출력, 삭제, 검색 등
  • 구조체를 만드는 목적은 해당 데이터를 그룹핑하기 위함.
  • 하나의 기능은 한가지의 연산만 수행할 수 있는게 바람직.
  • 구조체(데이터 집합체)에 기능을 추가시켜서 하나의 패키지로 만든것 : 'Class'

함수를 구조체 안에 종속 시키는 이유

  • 전역변수는 누구나 호출 가능.
  • 전역변수는 적으면 적을수록 적음.
  • 프로그램 전체에서 전역변수에 접근을 요하는 부분을 많지 않음.
  • 한 그룹안에 A,B,C가 나뉘어져 있는 것 처럼 전역변수가 존재하더라도 실질적으로 전역변수에 접근하는 그룹은 제한되있음.
  • 전역변수가 별로 좋지 않은것처럼 전역함수 역시 동일.
  • 따라서 관련있는 데이터에만 전역함수를 '종속'시켜 누구나 쉽게 호출 할 수 없는 함수로 해당 데이터 내에서만 접근가능하도록 묶는것.

enum

  • 보통 구조체 안에 포함시키지 않고 namespace 로 따로 빼서 별도로 묶어준다.


#include <iostream>

using namespace std;

class Radio
{
    // 클래스 내에서는 함수가 private 변수에게 접근가능.
private:
    bool powerOn;
    int channel;
    int volume;

public:
    void on()
    {
        powerOn = true;
        cout << "Radio가 켜졌습니다" << endl;
    }
    void off()
    {
        powerOn = false;
        cout << "Radio가 꺼졌습니다" << endl;
    }
    void setChannel(int cnl)
    {
        if (cnl >= 1 && cnl <= 999)
        {
            channel = cnl;
        }
    }
    void setVolume(int vol)
    {
        if (vol > 0 && vol <= 100)
        {
            volume = vol;
        }
    }
};

int main()
{

    Radio myRadio;
    myRadio.on();
    myRadio.setChannel(20);
    myRadio.setVolume(12);
}
profile
WILL is ALL

0개의 댓글