[c++ 5. 클래스와 객체(접근 속성, 함수)]

·2022년 7월 21일
0

C++_Study

목록 보기
9/25

#220721 - 220722
★ 캡슐화(클래스 만드는 것), 상속성, 다형성

#5-2. 접근권한(접근속성, access modifier)

  • 클래스 외부에서 멤버에 접근할 수 있는 권한
  1. 전용(private)
    해당 클래스 내부에서만 접근, 디폴트 속성으로 생략 가능
class Dog{
private:            // 속성
    int age;        // 멤버 변수
public: 
    int getAge();   // 멤버 함수는 주로 public
};
Dog coco;           // 객체
  1. 범용(public)
    어디에서나 접근 가능
  2. 보호 (protected)
    private이지만 자식에게는 접근할 수 있음

#5-3,5-4 함수

ex). void add(void) 리턴값이 없으면 리턴형 쓰는 자리에 void
매개변수가 없으면 매개변수 자리에 void

#1.
int up(int x)   //함수 정의. 여기서 x는 입력 parameter(매개변수)
{
    return x+1;
}
int main(void) 
{   
    up(3);      //함수 호출. 여기서 3은 argument
    std::cout << up(3) << std::endl;
    return 0;
}

#2.
const char* vending(int x);     // 선언

int main()                      // 호출
{
    std::cout << vending(1) << std::endl;
    std::cout << vending(2) << std::endl;
    
    return 0;

}

const char* vending(int x)  // 정의, 문자열인 경우 const char*
{
    if (x ==1) return "커피";
    else return "유자차";
}

#5-5. 캡슐화: 클래스와 객체 만들기

멤버함수의 선언과 정의/ 클래스 안에서 정의, 밖에서 정의 (get, set 으로 주고 받기)

class Dog{
private:                        // 속성 (생략 가능/default 값)
    int age;                    // 멤버 변수 (age는 캡슐화 되어있음)
public:                         // 멤버 함수는 주로 public
    int getAge(){               // private 멤버변수 age 값을 출력하기 위해 필요 (보통 get으로 시작)
        return age;
    }    
    void setAge(int a){         //private 멤버변수 age의 값을 입력받기 위해 필요 (보통 set으로 시작)
        age=a;
    }
};

int main()
{   
    Dog coco;
    coco.setAge(10);
    std::cout << coco.getAge() << std::endl;
    return 0;
};

#5-6. Dog 클래스의 다이어그램

#5-7. 범위지정연산자(scope resolution operator)

#5-8. using과 namespace, std namespace

#include <iostream> 
int main()
{
	//std : 표준 객체의 namespace
	std::cout << "소프트웨어" << std::endl;
    return 0;
}	//std동네에 있는 cout 


// 좋은 방법은 아님! ㅠㅠ 
#include <iostream> 
using namespace std;	// 비추하는 방법 

//더 좋은 방법 
using std::cout; 	
using std::endl; 	

//네임스페이스로 std 사용, 잘 쓰지 않음 

int main()
{
	cout << "소프트웨어" << endl;
    return 0;
}
profile
Hakuna Matata

0개의 댓글

관련 채용 정보