달력

10

« 2018/10 »

  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  

'선언'에 해당되는 글 2

  1. 2010.03.21 friend
  2. 2010.03.19 class(클래스) ~ C++의 꽃 ~
2010.03.21 19:18

friend 프로그래밍/C++2010.03.21 19:18







private로 선언된 class 변수를 외부에서 조작 하기 위해 사용.






friend 선언에 대해선 몇가지 더 존재 한다.
전역 함수에 대해 선언도 가능하지
만 클래스 or 클래스 안에 특정 맴버 함수에 대해서도 허용이 가능하다.



클래스에 friend 선언하기




그리고 마지막으로 friend선언을 맴버 함수만 해주는 것이 존재 하는데
이게 참 까다롭다.
전방 참조도 해줘야 하고,
일단 예제를 보자.
난 솔직히 잘 모르겠다.
friend 선언을 잘 안해서 그런것 일 수도 있지만
알것 같으면서도 애매하다



좀더 많이 배우고 느껴야 겠지만
friend라는건 참 모호하다
뭐든 잘쓰면 좋고 못쓰면 독이지만
이녀석은 그 영향을 더 잘 타는 것 같다.

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

멤버 이니셜 라이저(member initializer)  (0) 2010.03.23
복사 생성자, 디폴트 생성자 그리고 디폴트 복사 생성자.  (0) 2010.03.21
friend  (0) 2010.03.21
this 포인터  (0) 2010.03.21
객체 포인터 배열  (0) 2010.03.21
클래스의 활용  (0) 2010.03.20
Posted by 안식의후크
2010.03.19 00:42

class(클래스) ~ C++의 꽃 ~ 프로그래밍/C++2010.03.19 00:42







간단하게 보면 구조체 + 함수
라고 볼 수 있지만,

알면 알수록 정신세계를 안드로매다로 보내버리는 "아~ 그대의 이름은 클래스".

뭐 특징으로는

데이터 추상화네
캡슐화네
정보은닉, 다형성, 상속, 높은 재활용 등..

참 많지만 저런 이야기는 좀더 완벽하게 구사 할 수 있을때나 가능한거 같고,

바로 실전 코드로 알아 보자.



딱 봐도 구조체와 비슷,

시작은 미비하나 그 끝은 위대할 터이니,

클래스 내부에 무언가 선언(정의)할 떄에는 public과 protected, private 타입이 존재한다.

public은 공개
private는 자신만 공개
protacted는 특정한 상대에게만 공개

어떻게 설명해야 쉽게 설명할 수 있는가에 대한 답은 없는거 같고,

각각 특징과 어떻게 사용해야 하는지에 대해선 빠른 시일내에 다시 자세히 포스팅 하겠음. 일단 오늘은 사용법에 대해서만 알아 보도록 하자.

클래스 외부의 함수도 정의와 선언을 따로 할 수 있는데

외부 정의는 이 처럼 하면된다.


그리고 클래스는 생성자와 소멸자가 존재 하는데, 간략하게 한번 살펴 보자.


생성자의 가장 큰 능력은 클래스를 main에서 객체화 함과 동시에 초기화가 된다는 것이 가장 큰 능력이라고 볼 수 있다.
물론 여기엔 디폴트 매개변수도 가능! 좀더 다향한 재미를 맛볼 수 있는데, 직접 보면 이렇다.


당연한 이야기겠지만

이처럼 해주면 aaa::a 의 값은 10이 들어 갈 것이다.
사실 아직 public과 private, protacted에 대해서 설명하기전에 생성자를 말해놔서 당장은 왜 저렇게 하나...
싶기도 하겠지만 그것은 곧 알게 될테고(아마 뼈저리게...)

시작할 때 생성자가 있다면

끝날 때에는 소멸자가 존재한다.



결과 값은
100
0
이 나오게 된다.(main부분은 위 main 코드와 동일)



어찌 보면 당장은 생성자 보단 소멸자에 더 끌릴지도 모르겠다 메모리 삭제나 그외 종료하면서 해줘야 하는 일들을 소멸자에 넣으면 잊어 버리더라도 객채가 사라질때 소멸자에서 일을 해주기 때문이다.
시간이 늦어서(아 졸려) 뭔가 발로 쓴 느낌이 들지만. 큰 맥락은 다 잡은것 같다. 좀더 상세하고 재미잇고 세부적이고 짜증나고 분노가 치밀어 오르고 답답하고 열받는 이야기는 빠른 시일 내에 맑은 정신으로 다시 포스팅할 계획!(public과 그 친구들에 대해서도)

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

객체 포인터 배열  (0) 2010.03.21
클래스의 활용  (0) 2010.03.20
class(클래스) ~ C++의 꽃 ~  (0) 2010.03.19
레퍼런스(Reference)  (0) 2010.03.18
new & delete  (0) 2010.03.17
const 상수화  (0) 2010.03.17
Posted by 안식의후크