Language/C++ [C++] 디폴트 인자/typedef 함수 포인터 정의/class 정의
  • 728x90
    반응형

     

     

     

    C++ 기초


     

     

     

    디폴트 인자

    • 디폴트 인자는 오른쪽에 몰려 있어야 한다.

     

    🔔 예) 디폴트 인자 사용

     

    실행 결과

     

    💡 오버로딩과 디폴트 인자를 동시에 사용할 경우 어느 함수를 호출해야 할지 결정할 수 없을 경우 에러로 처리된다.

     

    • typedef를 사용한 함수의 포인터 정의

    int AnyName(int a, int b);

    typedef int (*test)(int, int);

     

     

     

    동적 메모리 할당의 기본

    🔔 예)

     

    • C 에서의 동적할당

    p = malloc(sizeof(int) * length);

     

    • C++ 에서의 동적할당

    p = new int [length];

     

    • length 가 4일경우 int (4byte) * 4 = 16byte 메모리 동적할당

     

     

    🔔 예)

    • C 에서의 동적할당

    int * ip;

    ip = malloc(sizeof(int));

     

    • C++ 에서의 동적할당

    ip = new int;

     

     

    🔔 예)

     

    실행 결과

     

     

    🔔 예)

     

    실행 결과

     

    • new, delete와 new[], delete[] 쌍을 맞춰서 사용하자.
    • NULL 포인터를 해제하는 것은 안전하다.
    • 해제한 메모리를 또해제해서는 안 된다.

    💡 문자열 사용함수 ? #include <cstring> 에 위치한다.

     

     

     

     

     

    객체지향 프로그래밍

    • 객체지향 프로그래밍은 사물을 프로그램밍으로 표현한다.

    • class 에는 접근속성, 상속, etc 등이 들어간다.
    • C++ 에서 struct (구조체) 는 접근속성은 public(외부에서 접근가능) 이다.
    • class 는 기본적으로 외부에서 접근할수 없지만 public 로 접근할 수 있다.
    • class 안에서는 함수사용시 class 안에서 선언된 변수들을 마음껏 사용할 수 있다.

     

    🔔 예) class 의 사용

     

    car a;    // class 는 생략 가능하다.

     

    • a 는 car 객체의 Object 라고 할 수 있다.
    • 위 class 의 size 는 함수는 메모리의 code 영역임으로 크기가 없다.
    • 그러므로 변수 int 가있음으로 class 의 size 는 4byte 가 된다.

     

    실행 결과

     

    🔔 예) 객체의 생성과 사용

     

    실행 결과

     

    🔔 예) 멤버 함수의 위치

     

    • 함수가 길어져서 밖으로 꺼내야 할 경우 scope(::) 연산자를 사용하여 class 소속임을 정의한다.

    void Point :: 함수(int a)

     

     

    🔔 예) 멤버 함수 안에서의 이름 충돌

     

    실행 결과

     

     

    🔔 예) 객체를 사용한 초기화와 대입

     

    실행 결과

     

     

     

    728x90
    반응형
상단으로