Section02. Project in iOS - 첫 앱 만들기 - iAlgebra 계산기 (1)
참고로 mp4만 인코딩 되어있어, mp4를 지원하지 않는 브라우저는 볼 수 없다.
Algebra의 의미는 대수학
'공부 > Swift/Objective-C' 카테고리의 다른 글
[SwiftUI] ObservableObject 뷰 업데이트 (0) | 2019.11.21 |
---|---|
[Xcode] Xcode 구버전 다운 받기 (0) | 2015.02.19 |
Section02. Project in iOS - 첫 앱 만들기 - iAlgebra 계산기 (2) (0) | 2014.08.23 |
Section01. Project in iOS - Xcode5로 시작하기 (0) | 2014.08.22 |
Programing in Objective-C 2.0의 149p 연습문제가 너무 어렵다. (0) | 2014.03.14 |
Section01. Project in iOS - Xcode5로 시작하기
유감이지만 아직 한글 자막은 입히지 않았다. 곧 작업해볼 예정.
'공부 > Swift/Objective-C' 카테고리의 다른 글
[SwiftUI] ObservableObject 뷰 업데이트 (0) | 2019.11.21 |
---|---|
[Xcode] Xcode 구버전 다운 받기 (0) | 2015.02.19 |
Section02. Project in iOS - 첫 앱 만들기 - iAlgebra 계산기 (2) (0) | 2014.08.23 |
Section02. Project in iOS - 첫 앱 만들기 - iAlgebra 계산기 (1) (0) | 2014.08.23 |
Programing in Objective-C 2.0의 149p 연습문제가 너무 어렵다. (0) | 2014.03.14 |
pdf 파일.
원본 : http://www.parkjonghyuk.net/lecture/2011-2nd-lecture/programming2/chap10.pdf
백업본 : http://nitori.in/X9D2/chap10.pdf
'공부 > C/C++' 카테고리의 다른 글
[C++ STL] vector(벡터) erase 함수 제대로 사용하기 (0) | 2015.10.22 |
---|---|
c++ 블럭 주석을 OnOff 하기 편하게 사용하기 (0) | 2015.02.17 |
(C++) 클래스 내의 static 지정자 (0) | 2014.08.07 |
(C++) 컨테이너【set】 (0) | 2014.04.04 |
(C++) 컨테이너【map】 (0) | 2014.04.04 |
(C++) 클래스 내의 static 지정자
출저 : 프로그래밍 입문 사이트 ~bituse~ | http://bituse.info/cp/17
이번엔 클래스 안에서 static 지정자를 사용했을 때의 경우에 대해서 설명합니다. 클래스 내부에서 static을 사용하면, 변수는 정적 멤버 변수가 되고, 그 클래스의 인스턴스를 몇 개를 만들어도, 그 변수는 전부 공유되어 하나가 됩니다.
일반적으로 클래스 내부의 변수는, 인스턴스 마다 변수를 가지고 있지만, static 지정자를 단 변수에 대해서는, 하나 뿐이 되어 공유되게 됩니다. 일반적인 인스턴스를 만들면, 그 클래스의 변수를 포함하는 영역이 확보되지만 1, 이 정적 멤버 변수른 인스턴스를 만들지 않아도 처음부터 공간이 확보되어 있습니다.
즉, 클래스의 구성원이 있더라도, 영역만은 다른 곳에서 확보되어있다는 것입니다. 그러므로, 클래스 외부의 글로벌 영역에서 변수를 선언하고 실체를 작성해야 합니다.
또한 함수에 static 지정자를 쓰면 정적 멤버 함수가 되며, 인스턴스를 만들지 않아도 그 기능을 수행할 수 있습니다. 하지만, 그 함수에서 접근하는 변수는 정적 멤버 변수 뿐입니다. 또한 클래스의 일반 함수는 정적 멤버 변수, 멤버 함수에 액세스할 수 있습니다.
아래코드를 보세요:
class TEST { public: int temp; static int figure;
static void func(int a) { figure = a; //temp 변수는 정적 멤버가 아니기 때문에 액세스 불가능 //temp = a; } }; int TEST::figure = 10; int main(void) { //인스턴스가 생성되어도 액세스 가능 printf("%d\n",TEST::figure); //정적 함수 인스턴스 생성 없이 액세스 가능 TEST::func(100); printf("%d\n",TEST::figure); //TEST 클래스를 세 번 선언 TEST aaa[3]; aaa[0].temp = 1; aaa[1].temp = 2; aaa[2].temp = 3; aaa[0].figure = 10; aaa[1].figure = 11; aaa[2].figure = 12; //각각 표시 for (int i=0; i<3; ++i) { printf("%d,",aaa[i].temp); } //개행 puts(""); for (int i=0; i<3; ++i) { printf("%d,",aaa[i].figure); } //개행 puts(""); return 0; }
위 코드를 실행하면 이렇게 나옵니다.
변수 figure와 func 함수에 static 지정자를 달고 있습니다 그리고 글로벌 영역에서 figure를 선언하고 실체를 만들고 있습니다. main 함수 내부를 보십쇼. 처음에 printf를 실행하고 있습니다만, 아직 인스턴스는 만들지 않았음에도 불구하고 정적 멤버 변수 figure의 값을 표시할 수 있습니다. 또한 정적 멤버 함수 func에도 액세스 할 수 있습니다.
정적 멤버에는 이렇게
클래스_이름::정적_멤버_변수(함수)
로 액세스 가능합니다.
다음은 TEST 클래스의 인스턴스를 세 개 생성합니다. 일반 변수 temp에는 각각의 인스턴스에서 다른 값을 넣어줍니다. 마찬가지로 변수 figure에도 각각의 인스턴스에서 다른 값을 넣어줍니다. 하지만 각각의 값을 표시하여 보면, 일반 temp 변수는 서로 다른 값이 들어있는 반면, 정적 멤버 변수 figure는 모두 12로 되어있습니다.
aaa[0].figure = 10;
aaa[1].figure = 11;
aaa[2].figure = 12;
이 코드에서, 각각의 인스턴스에 다른 숫자를 넣었습니다만, 정적 멤버 변수이므로, 변수가 공유되고, 어떤 인스턴스에 대해서도 마지막으로 할당한 12의 값이 표시되었다는 겁니다.
이것이 정적 멤버 변수와 정적 멤버 함수의 구조입니다. 이해하실 수 있으셨습니까?
- 인스턴스를 선언하면 프로세스가 끝날 때까지 메모리를 상주하는 것 [본문으로]
'공부 > C/C++' 카테고리의 다른 글
c++ 블럭 주석을 OnOff 하기 편하게 사용하기 (0) | 2015.02.17 |
---|---|
포인터와 동적배열 (0) | 2014.08.21 |
(C++) 컨테이너【set】 (0) | 2014.04.04 |
(C++) 컨테이너【map】 (0) | 2014.04.04 |
(C++) 컨테이너【queue】 (0) | 2014.04.04 |
(C++) 컨테이너【set】
출저 : 프로그래밍 입문 사이트 ~bituse~ | http://bituse.info/cp/16
이번에는 set에 대해서 설명하겠습니다. 이것을 사용하려면 set의 헤더 파일을 포함해야 합니다. set 요소를 추가하면 자동으로 정렬됩니다. 또한 요소의 추가는 insert 함수에서 수행하고, 인수에 값을 설정하면 됩니다 find 함수가 있고, 검색도 할 수 있습니다.
다음 코드를 봐주세요.
이것을 실행하면 이렇게 됩니다.
요소를 제거하려면 erase 함수를 사용하여 인수에 그 반복자를 지정합니다. 그 이외에는 vector 등과 같은 함수를 사용할 수 있습니다. 하지만 인덱스에 대해 액세스를 할 수는 없습니다. 모두 반복자로 액세스합니다.
이번 설명은 이상입니다.
'공부 > C/C++' 카테고리의 다른 글
포인터와 동적배열 (0) | 2014.08.21 |
---|---|
(C++) 클래스 내의 static 지정자 (0) | 2014.08.07 |
(C++) 컨테이너【map】 (0) | 2014.04.04 |
(C++) 컨테이너【queue】 (0) | 2014.04.04 |
(C++) 컨테이너【stack】 (0) | 2014.04.04 |
(C++) 컨테이너【map】
출저 : 프로그래밍 입문 사이트 ~bituse~ | http://bituse.info/cp/15
이번에는 map에 대해서 설명하겠습니다. 이것을 사용하려면 map이라는 헤더 파일을 포함해야 합니다. map은 조금 특수한 컨테이너에서 상당히 사용 빈도가 높은 컨테이너입니다. map은 있는 키 값과 함께 컨테이너에 넣고 그 키를 다시 삭제하거나 변경할 수 있는 컨테이너 입니다. 또한 요소를 추가 할 때, 키를 기반을 자동으로 정렬됩니다.
다음 코드를 봐주세요.
이걸 실행시키면 이렇게 됩니다.
우선, map의 선언 내용에 대해서 입니다만, 인수를 두 개 지정합니다. 첫째는 키, 둘째는 그 값입니다. 키는 나중에 컨테니어를 검색 할 때 사용될 것입니다. 위의 코드는 키에 int 형 값에 char*로 설정 지정합니다.
요소를 추가 할 때 insert 함수를 사용합니다. 그 인수의 지정에는 다음과 같은 세 가지가 있습니다.
- map<키_형식, 그의_값_형식>::value_type(키, 값);
- pair<키_형식, 그의_값_형식>(키,값);
- make_pair(키, 값);
그럼, 각 요소에 액세스하는 방법입니다만, 기본적으로는 반복자를 사용합니다. 해당 반복자를 취득 하려면
키의 값은
(*반복자_이름).first
실제 값은
(*반복자_이름).second
혹은
키의 값은
반복자_이름->first
실제 값은
반복자_이름->second
이런 방식으로 취득해옵니다. 또 포인터처럼 사용할 수 있습니다. 당연히 값의 변경도 가능합니다. 인덱스에 대한 액세스는 기본적으로 불가능하지만, 기 값을 인덱스로 취급하는 경우에는 액세스 할 수 있습니다. 예를 들어
test[3];
이라고 쓰면, 컨테이너의 키가 3이 되어있는 요소의 값을 가져오게 됩니다. 이제 각 요소에 액세스하는 방법도 이해할 수 있겠지요? 기타 함수의 내용은 지금까지 공부한 컨테이너와 같습니다. 하지만 자주 사용하는 기능으로는 find 함수가 있겠습니다. 이 인수에는 키 값을 지정합니다. 만약 그 키가 있으면 짝이있는 요소의 값을 반환합니다. 없으면 그 컨테이너의 end() 반복자를 돌려줍니다. 마지막 두 줄은 검색 후 발견된 키 요소의 값을 실제로 볼 수 있습니다.
map 요소의 제거는 erase 함수를 사용합니다. 이 부분 함수는 vector 같은 것들과 동일합니다. 이 컨테이너는 저도 자주 쓰니 꼭 기억하세요.
다음은 set에 대해서 설명하겠습니다.
'공부 > C/C++' 카테고리의 다른 글
(C++) 클래스 내의 static 지정자 (0) | 2014.08.07 |
---|---|
(C++) 컨테이너【set】 (0) | 2014.04.04 |
(C++) 컨테이너【queue】 (0) | 2014.04.04 |
(C++) 컨테이너【stack】 (0) | 2014.04.04 |
(C++) 컨테이너 【deque】 (0) | 2014.04.03 |
(C++) 컨테이너【queue】
출저 : 프로그래밍 입문 사이트 ~bituse~ | http://bituse.info/cp/14
이번에는 queue에 대해서 설명하겠습니다. 이것을 사용하려면 queue 헤더 파일을 포함해야 합니다. 이것은 대부분 stack과 같습니다. 다른 걸 말해보자면, stack에서 요소를 제거 할 때 pop을 사용하고 있었습니다만, 그때의 동작은 후행 요소에서 제거되어 갔습니다. 하지만 queue의 경우 첫 번째 요소에서 제거 됩니다. 즉, queue의 경우 추가하려면 끝에 추가가 됩니다만, 제거 될 때는 가장 오래된 요소에서 제거된다는 겁니다. 이 구조를 FIFO(First In First Out)이라고 합니다. 반대로 stack의 구조를 LIFO(Last In First Out)이라고 합니다.
또한, stack에서는 top 함수가 있었습니다만, queue는 그것이 없는 대신, 위로 요소를 꺼낼 front 함수와 마지막 요소를 꺼낼 back 함수가 있습니다.
아래 코드를 봐 주세요.
이렇게 하면 4와 1로 표시가 됩니다. pop 함수를 실행하면 먼저 추가한 첫 번째 요소가 제거 되었는지 알 수 있습니다.
다음은 map에 대해 설명하겠습니다.
'공부 > C/C++' 카테고리의 다른 글
(C++) 컨테이너【set】 (0) | 2014.04.04 |
---|---|
(C++) 컨테이너【map】 (0) | 2014.04.04 |
(C++) 컨테이너【stack】 (0) | 2014.04.04 |
(C++) 컨테이너 【deque】 (0) | 2014.04.03 |
(C++) 컨테이너【list】 (0) | 2014.03.29 |
(C++) 컨테이너【stack】
출저 : 프로그래밍 입문 사이트 ~bituse~ | http://bituse.info/cp/13
이번에는 stack에 대해 설명하겠습니다. 이것을 사용하려면 stack 헤더 파일을 포함해야 합니다. stack의 매커니즘은 요소를 점점 위로 쌓아가는 느낌입니다. 요소를 제거 할 때도 맨 위에있는 요소만 제거할 수 있습니다. 함수도
empty → 컨테이너가 비어있는 것을 확인
pop → 요소를 끝에서 제거
push → 요소를 끝에 추가
top → 후행 요소를 취득
szie → 요소 수를 취득
이 정도 밖에 없습니다. 특정 요소에 액세스 하는 것도, key를 사용하는 것도 불가능하므로 반복자는 없습니다.
아래의 코드를 봐주세요.
이걸 실행하면 4와 3이 나오게 됩니다. 특별하게 대단한 걸 하지 않았습니다. 0 ~ 4까지의 값을 push 함수 끝에 추가하고, top 함수로 표시하고 있습니다. 그런 다음 pop 함수 끝에 요소를 제거하고 표시하고 있을 뿐입니다. 이런 일 밖에 할 수 없는 미묘한 컨테이너입니다. (웃음)
저도 사용한 적은 없네요. 뭐, 이런 것도 있구나 쯤으로 생각해놓읍시다.
다음은 queue에 대해 설명하겠습니다.
'공부 > C/C++' 카테고리의 다른 글
(C++) 컨테이너【map】 (0) | 2014.04.04 |
---|---|
(C++) 컨테이너【queue】 (0) | 2014.04.04 |
(C++) 컨테이너 【deque】 (0) | 2014.04.03 |
(C++) 컨테이너【list】 (0) | 2014.03.29 |
(C++) 컨테이너 【vector】 (0) | 2014.03.27 |
(C++) 컨테이너 【deque】
출저 : 프로그래밍 입문 사이트 ~bituse~ | http://bituse.info/cp/12
이번엔 컨테이너 deque에 대해 설명합니다. 사용하려면 deque 헤더를 포함해야 합니다. deque 내용은 대부분 vector와 같습니다. vector에 push_front와 pop_front가 추가된 정도입니다. vector와 같이 key를 사용하여 각 요소에 액세스 할 수 있습니다.
아래 코드를 봐주세요.
이걸 실행하면 이렇게 됩니다.
insert 함수와 erase 함수를 사용하여 보았습니다. 이것은 반복자를 사용하여 삽입, 삭제 위치를 지정합니다. 이 함수는 vector, list 컨테이너에서 사용할 수 있습니다.
다음은 stack을 설명하겠습니다.
'공부 > C/C++' 카테고리의 다른 글
(C++) 컨테이너【queue】 (0) | 2014.04.04 |
---|---|
(C++) 컨테이너【stack】 (0) | 2014.04.04 |
(C++) 컨테이너【list】 (0) | 2014.03.29 |
(C++) 컨테이너 【vector】 (0) | 2014.03.27 |
(C++) STL에 대해서 (0) | 2014.03.27 |
http://bituse.info
- C라던가, C++이라던가, DirectX로 탄막 게임 만드는 그야말로 내가 원하는 걸 한곳에 모아둔 곳. 현재 C++ 번역 중이나, 저자의 허락이 떨어지지 않는 이상 공개 전환할 생각 없음. 140408일자로 승인 받고 공개 전환 중. 서식 번경은 추후에.
http://www.cikorea.net/user_guide_2.1.0/
- CodeIgniter 가이드 번역본. 무엇보다 공식 가이드의 방향성 조차 자세하게 설명하고 모든 걸 설명해주려고 하기에 간단하게 쓰려면 이것만 봐도 되지 않을까 싶다.
http://ryumin13.tistory.com/category/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D
- C 함수라던가 설명을 잘 해놨기에 즐겨찾기에 추가해놨다. 말 끝마다 ..을 붙여 자신 없는 것 같아서 약간 보기 불편하긴 하다.
http://www.nodebeginner.org/index-kr.html
- Node.js 초보자 가이드북이다. 아마 일정 분량만 적혀있고 나머지는 결제를 해야할 것 같긴 한데, 처음 시작할 경우 결제하지 않아도 충분히 발걸음을 땔 수는 있을 것 같다.
http://mobicon.tistory.com/
- JS나 Node.js, 혹은 html5 등등... 웹 쪽 자료가 꽤 많다.
http://cplusplus.com
- C++ 영어 읽는 게 고생이겠지만...
http://itguru.tistory.com/
- C, C++... C를 체하지 않고 먹는 방법을 가르쳐주기로 유명하다. 이제는 C++을 잘 씹으시려는 듯. 설명도 초보자 친화적으로 되어있어서 보기 좋다.
http://forum.falinux.com/
- C, 그 이외의 것들도 많다. 자료가 상당히 방대한데다 직접 라이브러리까지 만드시는 괴수 분들이 잔뜩 몰려계시는 듯 싶다. C 라이브러리 함수도 상세하고 쉽게 잘 써놓아져있고, 보기도 좋다.
'개인 > 헛소리' 카테고리의 다른 글
여기 야짤 없는데 (0) | 2014.09.13 |
---|---|
식질만큼 귀찮은 것도 없다. (0) | 2014.08.24 |
뭐야, 방문자 왜 갑자기 불었지. (0) | 2014.03.14 |
으음. (0) | 2014.02.05 |
졸려 죽겠다. (0) | 2014.02.05 |