◈ 객체지향 프로그래밍의 특징
-. 자료의 추상화 : 이름만 말해도 그것의 포함 된것을 전부 알 수 있는 것을 말함
예로 머리, 다리, 꼬리, 몸이 있는 동물 하면 강아지인것처럼 알수 있는것
-. 갭슐화 데이터 은닉 : 말그대로 자료를 갭슐화 하여 숨기는것을 말함
-. 다형성 : 이름은 같지만 인자가 다르면 다른 게 구분하는것을 말함
-. 상속성 : 기존에 있는 객체를 상속해서 새로운 객체를 만드는것
◈ 엑세스 지정자
-. public : 공통으로 쓸 수 있는 지정자(프로그램 내 모든곳에서 사용가능)
-. private : 사적으로 사용하지만 공개적으로는 사용할 수 없는 지정자(해당 클래스만 사용가능)
-. protected : 사적이나 공개적인 보호가 필요할 때 사용하는 지정자(현재 위치에서만 사용)
◈ 클래스
-. C에서 사용하는 구조체(struct) 와 유사하며, 여러가지 기능을 미리 정해 놓고,
필요할 시 호출해서 사용하는 것을 말함
◈ 클래스의 생성자와 소멸자
-. 생성자와 소멸자를 선언하지 않아도 오류가 발생하지 않다. 이유는 컴파일러가
알아서 만들어 주었기 때문이다
-. 생성자는 초기값을 설정할 때 사용하고, 소멸자는 클래스를 끝날때 사용된다.
#include<iostream.h>
class Master //class 선언
{
public:
Master(); //class 생성자 함수선언
~Master(); //class 소멸자 함수선언
private:
int iAge;
char iNmae;
};
Master::Master() //class 생성자 함수
{
iAge=25;
iname="운영자";
}
Master::~Maser() //class 소멸자 함수
{
}
◈ 함수 오버로딩??
'C언어'는 같은 이름의 함수를 동시 선언하면 알아서 구분하면 좋겠지만
이것을 구분할 능력이 없어 바로 Error 를 내보낸다..
'C++'은 능력이 향상되어 함수안의 인자들을 보고 알아서 구분한다..
#include <Iostream.h>
void Add(int num1, int num2) //첫번째 함수
{
cout << num1 << "+" << num2 << "=" << num1+num2 << " : First" << endl;
}
void Add(char a, char b) //두번째 함수
{
cout << a << "+" << b << "=" << a << b << " : Second" << endl;
}
int main()
{
Add(3, 2); //첫번째 함수 호출
Add('A', 'B'); //두번째 함수 호출
return 0;
}
#include <Iostream.h> // input & output stream header
int main()
{
int a, b;
cout << "First Number Input? ";
cin >> a;
cout << "Second Number Input? ";
cin >> b;
cout << a << " + " << b << " = " << a+b << endl;
return 0;
}
C 언어에서는 'printf' 를 사용 하지만 C++ 언어는 'cout'를 사용하고..
사용법 또한 간단히 변경되었다..
또 입력 함수 또한 편리 하게 변경되었다..
int main()
{
int a, b;
cout << "First Number Input? ";
cin >> a;
cout << "Second Number Input? ";
cin >> b;
cout << a << " + " << b << " = " << a+b << endl;
return 0;
}
C 언어에서는 'printf' 를 사용 하지만 C++ 언어는 'cout'를 사용하고..
사용법 또한 간단히 변경되었다..
또 입력 함수 또한 편리 하게 변경되었다..