C++ Notice
- malloc 과 new의 차이
- malloc : 메모리 동적 할당
- new : 메모리 동적할당 + 생성자 호출
- 구조체와 클래스 차이
- structure : 접근지정자가 default로 public
- class : 접근지정자가 default로 private
- C++ conctructor 호출
- stack에 객체선언후 생성자 호출
class Animal
{
...
};
int main()
{
Animal a;
}
- heap에 객체선언후 생성자 호출
class Animal
{
...
};
int main()
{
Animal a = new Animal;
}
- static
static 함수 개념
- static 변수 (정적 멤버 변수)
- 클래스에 선언되어있지만 객체별로 할당되지 않고 모든 객체가 공유
- 클래스 외부에서 별도로 선언 및 초기화해야함
- :: 연산자 와 함께 사용하여 클래스 소속을 밝혀야함
- 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();
}