본문 바로가기
프로그래밍/c++

c++ 기본 문법 정리3

by -현's- 2012. 2. 17.
반응형

●new 연산자 - 오브젝트를 동적으로 생성할 때 사용
ex)
A *a;
a=new A;

A *a=new A;



●delete 연산자 - new연산자로 확보한 메모리는 delete연산자로 해체해야한다.
ex)
A *a=new A;
delete a;




●new, delete를 이용해서 int형 등의 메모리 확보, 해체
ex)
int *a=new int;
delete a;

//malloc,free를 쓸경우
int *a=(itn *)malloc(sizeof(int));
free(a);

●malloc()함수보다 new연산자를 사용하는 것이 간단하기 때문에 권장




●new연산자를 이용한 배열용 메모리 확보, 해체
ex)
a=new[10];       //[]안에 숫자 적어야 함
delete []a;        //delete뒤에 '[]'기술해야 함




●참조
- 변수에 별명을 붙이는것. c언어의 포인터와 달리 사용할때 '*' 안 써도 된다. 한쪽을 변경하면 다른 한쪽도 동일하게 변경된다. '&'사용.
ex)
int a;
int &b=a;    //b가 별명이다.
b=10;
cout<<b<<endl;    //b는10 이다
cout<<a<<endl;    //a는10 이다



●함수의 인수로 참조를 사용하기 - 가인수를 참조하면 함수내부에서 실인수를 변경할 수 있다.
ex)
double A(double &a, double &b){
return a+b;
}
double x=1.1 , y=2.2;
double ans=A(x, y);



●인수를 const 형식의 참조로 만들
- 실인수의 값이 변경되면 곤란한 경우 가인수에 onst를 붙인다. 구조체 같은 큰 데이터를 함수에 전달할 때 const형식으로 하면 효과적이다.
ex)
void A(const double &a)
{
~~~
}



●상속 - 이미 존재하는 클래스를 바탕으로 새로운 크랠스를 만드는 것.
클래스명 뒤에 ' :접근제한자 부모클래스명 '을 기술
ex)
class Food{
~~
};
class Fruit :public Food {
~~
};



●자식 클래스의 오브젝트는 부모클래스의 오브젝트에 대입 가능
   부모 클래스의 오브젝트는 자식클래스의 오브젝트에 대입 불가능



●자식 클래스에서 부모 클래스의 멤버함수를 재정의
- 함수명, 인수, 반환값은 동일해야함. 재정의 한쪽의 함수가 호출됨
ex)
class Food{
   public:
      void setP(int a){
      price=a;
      }
   private:
      int price;
};
class Fruit :public Food{
   public:
      void setP(int a){
      Food::setP(a-20);            //자식클래스에서 부모클래스에 있는 같은 이름의 함수를 호출하기 위해서는
      }                                   //스코프연산자(::)를 사용
};



●가상 함수를 재정의 한 것을 오버라이딩이라 한다.




●순수 가상 함수
- 기본 클래스에서 내용을 정의하지 않은 가상함수. 순수가상함수를 포함하는 클래스의 오브젝트는 생성X. 함수 선언 제일 앞에 'virtual'을 쓰고 제일 뒤에 '=0'을 붙인다.
ex)
class Food{
   public:
      virtual void setP(int a)=0;
};

반응형

'프로그래밍 > c++' 카테고리의 다른 글

c++ visual c++로 프로젝트 시작하기  (0) 2013.06.11
c++ 폴더안에 있는 헤더파일 include  (0) 2013.05.26
c++ 기본 문법 정리4  (0) 2012.02.17
c++ 기본 문법 정리2  (0) 2012.02.16
c++ 기본 문법 정리1  (0) 2012.02.16

댓글