목록Programing/C++ Programing (7)
Prosto
일단 저번 예제를 파일 분할 함으로 얻을 수 있는 것이 있습니다. (헤더 cpp main...) #################### 헤더파일 ####################### Point.h //헤더파일의 경우 클래스의 선언을 담습니다. class Point { private: int xpos; int ypos; public: void PointSet(int x, int y); void MovePos(int x, int y); //점의 좌표이동 void AddPoint(const Point &pos); //점의 좌표증가 void ShowPosition(); //현재 x, y좌표정보 출력 }; #################### cpp파일 ####################### Point.c..
앞에서 설명한 클래스를 이용한 예제 중 하나입니다. 자세하게 주석을 달아 놓았습니다. #include //std::cout, std::cin 등을 가지고 있는 iostream -> include. using namespace std; //std 네임스페이스 사용. std::out std::cin std::endl 등을 std:: 없이 사용가능. class Point //Point 클래스 선언. { private: // private은 외부로 공유하지 않음. 정보를 은닉해줌. int xpos; int ypos; public: // public은 외부로 사용할 수 있게 열어둠 void PointSet(int x, int y); void MovePos(int x, int y); //점의 좌표이동 void Ad..
이번에는 C++의 큰 장점 중 하나인 이름공간입니다. 혼자가 아닌 여럿이 모여 개발하는 경우가 대부분인데, 이러한 경우 매우 좋습니다. 예를 들어 A, B, C 세 사람이 모여 개발하는 경우, 모두가 같은 이름의 함수를 사용했을 때 충돌이 발생될 수 있습니다. 그렇게 될 경우 엄청난 시간싸움이 될 수도 있죠.. (여기 고치고, 저기 고치고...) 그런 경우에 매우 도움이 되는 것이 바로 namespace 입니다. 셋 모두 Function()이라는 함수가 있을 경우 A의 Function(), B의 Function(), C의 Function() .. 과 같이 각자이름을 붙여 사용되는 것입니다. namespace 이름공간명. { .. } namespace Prosto { void func() {...} } 이..
인라인 함수 공부에 앞서 C의 매크로 함수에 대한 어느정도의 지식이 필요합니다. (매크로 함수의 장점, 단점.. 매크로 함수의 기능 ....) 간단하게 말하면, C의 매크로 함수는 함수 정의를 사용한 경우와 다르게 간단하게 처리를 하여, 성능의 향상을 주는 장점이 있고, 단점으로는 디버깅의 어려움, 함수 정의 방식이 일반함수에 비하여 더 복잡하다는 것이죠. 간단한 코드. #define SQUARE(X) ((X)*(X)) int main(void) { printf("%d \n", SQUARE(5)); return 0; } 위 코드에서 SQUARE(5)가 들어간 자리는 ((5)*(5))로 치환되어 실행됩니다. 인라인 함수는 그러한 매크로 함수의 장점을 이용하여 프로그램의 성능 향상을 위하여 새로 도입된 키워..
C++에서는 매개변수의 디폴트 값을 줄 수 있습니다. int Func(int num=10) { ... } 이라는 함수가 정의되어 있을 경우. main 함수에서 이 함수를 사용할 때 int main() { ... Func(); Func(10); ... } 인자를 전달 하지 않아도, num=10이라는 값을 디폴트 값으로 전달 받도록 합니다. 그러므로, 위의 Func();와 Func(10);은 같은 의미를 가지게 됩니다. 같은 의미로 int Func(int num=10, int num2=20) { ... } 이라는 함수가 정의되어 있을 경우. main 함수에서 이 함수를 사용할 때 int main() { ... Func(); Func(10); Func(10, 20); ... } 인자를 전달 하지 않아도, nu..
C++에서는 C와 다르게 함수 오버로딩이 가능합니다. (같은 이름의 함수를 재정의하고 사용할 수 있습니다.) 이는 int Func() {} int Func(int a) {} int Func(int a, int b) {} int Func(char a) {} 와 같은 형식이 가능한 것입니다. (이름은 같지만 매개 변수형이나 인수 갯수가 다른 함수.) C에서는 컴파일에러가 발생되겠지만, C++에서는 정상적으로 실행됩니다. 그 이유는 C에서와 다르게 C++에서는 함수를 (이름 + 전달인자)로 확인하기 때문입니다. 하지만, int Func() {} void Func() {} 와 같이 반환형만이 다른경우는 불가능합니다. (이름과 전달인자로 확인하고 사용되기 때문.)
전에 C programing을 공부하고, 이제 C++ 공부를 시작했습니다. C는 절차 지향 언어인 반면, C++은 객체 지향 언어입니다. C와 비교하면 몇가지 차이점도 보입니다. 앞으로 천천히 공부해 나가기로 하겠습니다! + C++은 C에 비해서 여러측면에서 대규모 프로젝트를 하는데 적합합니다. 또, 게임을 만들 경우에도 C언어를 그대로 쓰기보다는 C++을 사용합니다. 그 이유는 공부하면서 나오겠지만, namespace라든지, 참조자라든지.. 조금만 공부하다보면 어느정도 이유를 알 수 있을 것이라 생각됩니다. 또, C를 완벽히 모르더라도 C++을 시작해도 됩니다. (저 또한 그렇고요.) C++을 공부해 나가면서 부족하다 느끼는 부분은 다시 한 번 C도 참고하고, 공부하여 부족한 부분을 체워나가며 공부하는..