프로그래밍/C++ 스피비 2011. 3. 20. 22:50
지역클래스(local class): 함수내부에 선언되어 있는 클래스 멤버 함수의 내부 정의만을 허용(외부 정의 불가) 해당 함수 내에서만 사용 가능 출저: http://blog.naver.com/jjungyoon87?Redirect=Log&logNo=100090326310 오늘은 기본이 부족하다고 또 한번 느끼게된 하루 메인함수 안에서 class 선언하고 외부에서 정의하는 개 뻘짓을 함...... 아 반성하자 ㅋㅋㅋㅋㅋㅋㅋㅋ
프로그래밍/C++ 스피비 2011. 3. 20. 22:41
클래스 배열 즉 객체 배열을 만들려면 주의할점이있다. 클래스 SK가 있다고 쳐보자. class SK{ int a; int b; SK(int n1, int n2); ~SK(); }; 이 클래스는 SK value( 2,3 ) ; 이런식으로 초기화를 해줘야한다. 그렇다면 SK Array[3]; 이렇게 배열을 선언하면 어떻게 될까? 당연히 에러다!!! 그것은 SK Array() 이런식의 생성자가 없기떄문이다. 이것이 처리되려면 인수를 취하지 않는 디폴트 생성자가 반드시 있어야한다. 이러한 에러가 나는 이유는 컴파일러는 애매한 초기식으로부터 대충 비슷해 보이는 생성자를 호출하는 쓸데없는 서비스를 하기보다는 차라리 에러로 처리하는 것이 더 깔끔하다고 생각하는 것이기때문.!! 객체배열을 선언하면서 초기화하는 방법: ..
프로그래밍/C++ 스피비 2011. 3. 20. 22:30
이것에 앞서서 new 와 malloc의 차이점에 대해서 먼저 보고와라 2011/03/17 - [프로그래밍/C++] - malloc/free 와 new/delete 차이점 앞에서도 확인했드시 new는 연산자이고 malloc은 함수이다. 그리고 new는 생성자를 호출하는것이 주된 특징인데 그래서 malloc 으로 객체를 생성하면 생성자,소멸자가 호출이 안되기때문에 항상 초기화 및 해제를 신경써줘야한다. 하지만 new로 객체를 생성하면 생성자,소멸자가 호출되기때문에 초기식을 따로 안써줘도 되서 유리하다!!!! 즉!!!!!! 객체를 만들땐 그냥 new를 쓰자 !!
프로그래밍/C++ 스피비 2011. 3. 20. 22:25
생성자와 소멸자의 대해서 간단 정리를 해보겠다.(핵심만) 생성자, 소멸자의 특징 1. 이름이 정해져있다. 2. 리턴값이 없다. 3. 반드시 public 속성을 가져야한다. 4. 생성자는 인수가 있지만 소멸자는 인수가없다.(생성자는 여러개 오버로딩도 가능,소멸자는 무조건 하나) 5. friend도 static도 될 수 없다. 6. 소멸자는 가상 함수로 정의될 수 있지만 생성자는 가상 함수로 정의될 수 없다. 7. 둘다 디폴트가 있다.
프로그래밍/C++ 스피비 2011. 3. 17. 21:18
오늘은 malloc/free 와 new/delete 차이점에 대해서 알아보겠다.(www.winapi.com 을 참고했다.) 1. malloc/free는 라이브러리가 제공하는 함수인데 비해 new/delete는 언어가 제공하는 연산자이다. 그래서 별도의 헤더 파일을 포함할 필요없이 언제든지 사용할 수 있으며 이 연산자를 쓴다고 해서 프로그램이 커지는 것도 아니다. 연산자이기 때문에 사용자 정의 타입에 대해 오버로딩할 수도 있다. m 2.malloc 함수는 필요한 메모리양을 바이트 단위로 지정하고 void *를 리턴하므로 sizeof 연산자와 캐스트 연산자의 도움을 받아야 한다. 이에 비해 new는 할당할 타입을 지정하고 해당 타입의 포인터를 리턴하므로 sizeof 연산자와 캐스트 연산자를 쓸 필요가 없다...