티스토리 뷰

Application/C/C++

객체지향의 이해

drake_kr 2014. 4. 4. 23:42

문득 갑자기 객체지향을 설명할 수 있을것 같다.
사실 객체지향이라는 말부터 이해가 안되잖아..
근데 Object-Oriented라고 하면 오히려 좀더 이해가 되는 느낌.. -.-
C++의 Class와 Java의 Class가 등장하면서 객체지향이라는 말을 많이 쓰는데,
뭐, 각각의 함수에 인자만 주고 함수 내에서 거의 대부분을 해결하는 느낌?
그러니까, 함수가 각각의 Sandbox로, 각 기능별로 기능 안에서 필요한 변수는 그 기능 안에 다 들어가야 한다는것.
간단한 프로그램에서는 절차지향이 훨씬 낫지만,

프로그램이 커지게 되면, 암기력이 굉장히 좋지 않은 이상,
내가 어떤 변수를 할당했는지 모르게 된다.
뭐, 어차피 클래스 하나 짜는게 짧은 프로그램 하나 짜는 느낌이니 부담이 없는거고,
함수 테스트를 할때도 편하고..
굳이 메인쪽 프로세스를 몰라도 되는거니 불필요하게 외울것들이 없어져서 그런거다.

일단, 객체지향을 말하는 사람이 객체지향에 대해 장황하게 설명하는건,
객체지향에 대해서 전혀 모르거나,
Hello World급의 예제를 예로 들자니, 객체지향의 장점을 설명하기가 힘들어서 그런 것.

왜 그런지 Code로 봅시다..

--- 절차지향 ---
#include 
int main(int argc, char *argv[])
{
  string a = "Hello, World";
  std::cout << a << std::endl;
  return 0;
}
--- 객체지향 ---
#include <iostream>
class Print
{
public:
  int setStr(string str)
  {
    _str = str;
    if(_str == str) return 0;
    return -1;
  }
  string getStr()
  {
    return _str;
  }
  void print()
  {
    std::cout << _str << std::endl;
  }
private:
  string _str;
};

int main(int argc, char *argv[])
{
  Print prn;
  prn.setStr("Hello, World");
  prn.print();
  return 0;
}

'Application > C/C++' 카테고리의 다른 글

QtNetwork를 사용하려면  (0) 2014.10.23
nCurses 페이스북 그룹 내용 백업  (0) 2014.05.04
Source Insight 3.5  (0) 2014.02.17
배열 초기화  (1) 2013.08.17
nCurses application static build  (0) 2013.08.13