• Home
  • About
    • KKsDev photo

      KKsDev

      게임 프로그래머를 목표로 Unity, C#을 공부하고 있습니다.

    • Learn More
    • Email
    • Github
    • Steam
  • Posts
    • All Posts
    • All Tags
  • Projects

C++ C와 C++에서의 변수와 인스턴스 비교

27 Jun 2023

Reading time ~1 minute

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 키워드를 사용한 함수 포인터
}

형식을 기술하지 않아도 된다는 매우 큰 장점이 있고, 형 의존적이지 않은 제네릭 프로그래밍을 할 수 있다

Reference

제01장 C와는 다른 C++ - 두 번쨰 - 널널한 개발자 TV



Cpp Share Tweet +1