C++ Notice

C++ Notice

  • malloc 과 new의 차이
    • malloc : 메모리 동적 할당
    • new : 메모리 동적할당 + 생성자 호출
  • 구조체와 클래스 차이
    • structure : 접근지정자가 default로 public
    • class : 접근지정자가 default로 private
  • C++ conctructor 호출
    1. stack에 객체선언후 생성자 호출
      class Animal
      {
        ...
      };
      int main()
      {
        Animal a;
      }
      
    2. heap에 객체선언후 생성자 호출
      class Animal
      {
        ...
      };
      int main()
      {
        Animal a = new Animal;
      }
      
  • static

    static 함수 개념

    1. static 변수 (정적 멤버 변수)
      • 클래스에 선언되어있지만 객체별로 할당되지 않고 모든 객체가 공유
      • 클래스 외부에서 별도로 선언 및 초기화해야함
      • :: 연산자 와 함께 사용하여 클래스 소속을 밝혀야함
    2. static 멤버 함수 (정적 멤버 함수)
      • 생성된 객체가 하나도 없더라도 클래스의 이름만으로 호출 가능
      • 주로 정적 멤버 변수를 제어하거나 모든 객체를 위한 처리를 한다
         class Count
         {
         private:
          int Value;
          static int Num;
         public:
          Count() { Num++; }
          ~Count() { Num--; }
          static void OutNum() 
          {
            printf("현재 객체 개수 = %d\n",Num);
          } 
         };
         int main()
         {
          int Count::Num=0;
          Count::OutNum();
         }
        

Categories:

Updated: