
따라하자 씹어먹는 C++
== 으로 만 문자열 비교를 할 수 있게 됐다.클래스를 만들때 비슷한 클래스를 만들일이 생긴다.
하드코딩을 하게 되면 클래스를 그냥 복사해서 비슷하게 쓰면된다.
근데 우리는 경험상 하드코딩은 결국 골아픈 결과를 낳는것을 알고있다.
기반 클래스
class Base{
	std::string s;
    
    public:
    Base() : s("기반){
    	std::cout << "기반클래스"<< std::endl;
    }
    void what(){ std::cout << s << std::endl;}
}
위의 기반클래스를 상속받아보자.
파생 클래스
class Derived : public Base{
	std::string s;
    
    public:
    Derived() : Base(), s("파생"){
    	/*
        Base 에서 what()을 물려받았으니, 
		Derived 에서도 당연히 호출 가능
        */
        what()
    }
}
class Derived : public Base 라는 것을 먼저 보자.위의 기반, 파생클래스의 모양은 이렇다
위의 코드를 기반으로 main문을 짜서 결과를 보면 이렇다.
int main() {
    std::cout << " === 기반 클래스 생성 ===" << std::endl;
    Base p;
    std::cout << " === 파생 클래스 생성 ===" << std::endl;
    Derived c;
    return 0;
}

오버라이딩 이라고 합니다.오버로딩 은 같은 이름의 함수를 사용하며, 매개변수를 달리하여 여러가지 함수로 만드는 것 이고,오버라이딩은 그냥 덮어쓰기입니다.클래스를 상속 받는다 해도, 파생클래스가 기반클래스의 private 변수를 건들 수 없습니다.
하지만 protected 변수는 파생클래스도 건들 수 있습니다.
씹어먹는C++ 설명이 아주 찰져서 긁어왔습니다.
| 구분 | 설명 | 
|---|---|
| private | (부모님한테도 안알려주는)나만의 비밀번호 | 
| protected | 집현관문 번호(가족들은 아는데 이외사람들 접근불가) | 
| public | 누구나 접근가능 |