본문 바로가기

C130

클래스의 활용 누가 그랬던가, C++로 제작이 가능한 모든것은 C로도 제작이 가능하다고, 물론 맞는 말이지만, 추후 그 프로그램을 수정할때의 시간은 확실히 차이가 난다고 생각한다. 클래스의 활용법에 대해서 알아보자. 클래스를 선언할 때에 public: private: protected: 가 존재 하지만 일반 적으로 public:에는 함수 선언을 많이 하고 private:에는 변수 선언을 많이 하게 된다. 왜 그럴까? 소스 코드를 보자. #include class AAA { // 기본적으로 아무 것도 설정해 주지 않으면 private: int n; public: int GetN();// N의 값을 return 받기 위해 void SetN(int tmp);// N에, 값을 넣기 위해 }; void main() { // 만.. 2010. 3. 20.
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.
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.
프로그래머가 면접시 주의해야 할점. 당연한것 같지만, 모두다 만족하긴 어려운 바로 그것 2010. 3. 16.