본문 바로가기

프로그래밍162

class(클래스) ~ C++의 꽃 ~ 간단하게 보면 구조체 + 함수 라고 볼 수 있지만, 알면 알수록 정신세계를 안드로매다로 보내버리는 "아~ 그대의 이름은 클래스". 뭐 특징으로는 데이터 추상화네 캡슐화네 정보은닉, 다형성, 상속, 높은 재활용 등.. 참 많지만 저런 이야기는 좀더 완벽하게 구사 할 수 있을때나 가능한거 같고, 바로 실전 코드로 알아 보자. #include class AAA// AAA라는 클래스 선언 { public:// public으로 생성되는 int a int a; int fun(int a){ return a; }// 함수도 가능 };// 클래스의 끝에는 ; 필요 void main() { AAA aaa;// AAA 클래스의 aaa 객체 std::cout 2010. 3. 19.
정말 사소한 팁. int형 레퍼런스를 리턴하는 함수와 쓰일것 같지 않은 캐스팅 연산자, 하지만 알고 있으면 언젠간 쓸일이 있겠지. 있겠지...? 있나.. 있을까--a;; #include int n1; int& fun()// int& 리턴하는 fun함수 { return n1; } void main() { int val; int *pval = &val; *pval = (int)pval; fun() = 10; std::cout 2010. 3. 19.
레퍼런스(Reference) C++에서 추가된 기능으로 주소값을 넘겨주는 &연산자를 변수 선언시에 사용함으로써, 같은 메모리 공간을 사용하는 2개의 변수( 1개의 변수와 그 변수의 별칭 정도가 더 맞는 표현일지도 모르겠다)를 말한다. 같은 값을 가르킨다는 것에서 포인터와 비슷하다고 할 수도 있지만 그 개념은 조금 다르다. 레퍼런스 설정 방법 #include void main() { int n1 = 10; int &a = n1; } 디버그 화면을 보면 알 수 있지만 포인터처럼 *a의 값이 10이 아니다 그냥 a자체가 10을 가지고 있다는 것이 포인터와 다른 점이라고 할 수 있겠다. 실제로 &사용해서 값을 받으면 int n1 = 10; int a; 를 사용하나 int &a = n1; 실제 사용할때는 int a 나 int& a 나 차이가.. 2010. 3. 18.
new & delete new와 delete, c언어의 malloc과 free와 개념은 똑같다. 사용법에 대해서는 소스 코드를 참조. #include #define HEIGHT 3 #define WIDHT 4 #define PLANE 2 void main() { // 2차원 int **p; int cnt = 0; // 할당 p = new int*[HEIGHT]; for( int i=0; i 2010. 3. 17.
와일드 포인터 #include void main() { int *n1 = 0; int *n2; } 과 같은 경우에 n1은 널포인터, n2는 와일드 포인터 라고 한단다. 용어적인 이야기인듯. 2010. 3. 17.
const 상수화 const에 대한 애매모호한 상황에 대한 설명 소스 코드 참조 #include void main() { int tmp = 10; const int n1 = 10;// n1은 상수화 const int* n2 = &tmp;// n2가 가르키는 값을 상수화(tmp = 10은 가능) int* const n3 = &tmp;// n3는 tmp가 아닌 다른 값을 가르키지 못한다. } 2010. 3. 17.