Instance
객체지향
프로그래밍 환경에서 클래스로부터 생성된 실체를 인스턴스
라고한다.
int nData;
int는 형식, nData는 변수
라고 하지만
객체지향 에서 nData는 변수지만 int 형식에 대한 인스턴스
라고도 볼수있다.
변수 선언 및 정의
변수
는 데이터를 저장하고 조작하기 위해서 메모리에 할당된 공간
을 의미하고
선언 및 정의
는 메모리 공간을 할당하는 과정
을 의미한다.
int a = 10; // 1. C 스타일
int b(10); // 2. C++ 스타일
int c(b); // 3. b의 값를 복사
int (10); // 4. 이름이 없는 인스턴스 선언 및 정의
// (여기서는 int형식이기 때문에 상수 처리 된다.)
auto
int a(10);
auto b(a);
auto 키워드를 사용하여 인스턴스를 선언 및 정의하면 원본 인스턴스의 형식을 따라간다.
void TestFunc(int, char*){}
int main()
{
void(*pfTest)(int, char*) = TestFunc; // 일반 함수 포인터
auto pfTest2(TestFunc); // auto 키워드를 사용한 함수 포인터
}
형식을 기술하지 않아도 된다는 매우 큰 장점이 있고, 형 의존적이지 않은 제네릭 프로그래밍을 할 수 있다