--void* malloc(size_t _Size);-- int* pA = 0; pA = (int*)malloc(sizeof(int));=> pA에 int의 size 만큼 동적 할당. pA = (int*)malloc(sizeof(int)*n);=> pA에 int의 size만큼 n개 동적 할당. ( pA[n] ) --new-- int* A = 0; pA = new int;=> pA에 int의 size만큼 동적 할당. pA = new int[n];=> pA에 int의 size만큼 n개 동적 할당. ( pA[n] ) int** pA; pA = new int*;=> pA[0];pA[0] = new int;=> pA[0][0]; pA = new int*[n];=> pA[n];pA[n] = new int[i];=>..
정적 멤버변수 & 정적 멤버함수-> 동일한 클래스로부터 생성되는 객체에 의해 공유되는 변수: Color 클레스의 정적 멤버변수 A를, Color 클레스로 생성된 모든 객체에서 공유하여 사용.-> static 키워드를 이용하여 지정-> 객체의 생성 없이도 사용 가능-> static 멤버변수가 별도의 static 영역에 저장되기 때문 정적 멤버변수 class Color { private: static int s_count; }; int Color::s_count = 0; int main() { // main 프로그램 영역 } -> 객체가 만들어질 때 생성되는 것이 아님.=> 프로그램 내부의 적절한 위치에서 위와같이 전역 변수와 동일한 방법으로 초기화.-> 생성 및 사용 시 범위 연산자 ::(Scope Res..
객체 포인터-> 1. 파생 클래스의 객체를 가리키는 기본 클래스의 객체 포인터를 사용할 수 있음.-> 2. 기본 클래스의 객체를 가리키는 파생 클래스의 객체 포인터는 사용할 수 없음. class Animal { public: void breathe(); }; class Fish : public Animal { public: void breathe(); }; Animal* a = new Fish; // 1. 가능 Fish* f = new Animal; // 2. 불가능 -> 3. a->breathe();를 호출하면, class Animal(기본클래스)의 breathe() 함수가 호출 됨. 가상 함수(virtual function)-> 상속 관계에 있는 클래스를 객체 포인터 형태로 사용할 때 의미가 있음.-..