질문: 다음 C++ 코드에서 잘못 사용하고 있는 부분을 알려주세요. #include <iostream.h> int Getsum(int arr[], int size); int main() cout << "배열의 총합계 : " << Getsum(array, 10) << endl; return 0; int getsum(int arr[], int size)
어디가 틀린지좀 봐주세요 ㅠ | |||
답변: re: 비쥬얼 c++ 틀린부분점 ㅠ | |||
iostream에 관련된 내용은 밑 부분을 보십시요. 오늘 다른 분의 질문했을 때 제가 답했던 것을 그대로 올립니다.
#include <iostream>
int main() cout << "배열의 총합계 : " << Getsum(array, 10) << endl; return 0; int Getsum(int arr[], int size)
다음은 iostream에 관련된 내용입니다.
먼저 namespace설명을 하고 나서 iostream에 대해 간략하게 설명하겠습니다.
C++이 발전해 나가면서 수 많은 라이브러리가 생겨났습니다. 개발자들은 이들을 취사선택해서 사용을 할 수 있어야 하는데 서로 다른 두 개의 라이브러리에서 같은 명칭의 형식이나 변수가 있다면 해당 두 라이브러리를 동시에 사용 못하게 되는 경우가 발생합니다.
이러한 것을 namespace라는 문법을 추가함으로써 이름 충돌을 해결하고 되었습니다.
만약 라이브러리 A만 사용할 경우에는
using namespace A; 라고 한 후에 사용하면 됩니다.
그런데 A의 stack과 B의 queue를 사용하고 싶다면 다음처럼 해결을 할 수 있습니다.
using namespace A; using A::stack;
using namespace B; using B::queue;
만약 A의 stack과 B의 stack을 사용할 경우는 다음과 같이 해결할 수 있습니다.
using namespace A; using namespace B;
void Foo() { A::stack as; B::stack bs; }
이처럼 namespace는 이름 충돌을 막기 위해 추가된 문법입니다.
namespace문법이 추가되기 이전에 C++에서는 #include <iostream.h>
namespace 문법이 추가되면서 std namespace에 cout이나 cin등을 정의한 iostream파일을 사용을 권고하고 있습니다. #include C++의 경우 헤더나 소스 파일의 경우 굉장히 다양한 형태의 파일 포맷들을 사용할 수 있는데 가장 흔히 사용되는 것이 .cpp 와 .h일 뿐입니다. 참고로 visual 6.0 에서는 #include<iostream.h>
하지만 visual studio 2008에서는 후자만 제공을 하고 있습니다.
즉, namespace문법을 익히시고 사용해야 한다는 결론입니다. 그리 어렵지 않고 직관적으로 이해하실 수 있는 내용이니 찬찬히 살펴보시기 바랍니다.
이상 허접한 나그네... |
'언어 자료구조 알고리즘 > C언어 예제' 카테고리의 다른 글
정보 올림피아드 (0) | 2009.08.19 |
---|---|
중복되지 않게 랜덤한 카드 발생 (0) | 2009.08.19 |
파이, e, sin 구하기 (0) | 2009.08.19 |
Sin함수 만들기(II) (0) | 2009.08.19 |
적분 공식을 이용한 Sin(x)함수 만들기 (0) | 2009.08.19 |
정보올림피아드 프로그래밍 (0) | 2009.08.19 |
간단하게 Random함수 만들기 (0) | 2009.08.19 |
재귀함수 형상화 (0) | 2009.08.19 |
한글 초성 알아내기 (0) | 2009.08.19 |
쉬프트 연산 (1) | 2009.08.19 |