C로 객체지향 코드만들기.

sala123의 이미지

어떻게해야 씨로 객체지향 코드를 만들수있나요?
이런내용에대한 책이나 문서있는지요.

madhatter의 이미지

Object Oriented Programming with ANSI C 라는 책이 있더군요. 서점에서 뒤적거리다 우연히 봤습니다.
그리고 관련 문서도 굉장히 많은 것으로 알고 있습니다.

youlsa의 이미지

여기에 보시면 잘 나와있는데 독일어로 되어 있습니다.

영문 번역기로 돌린건 여기를 보시면 되는데 소스까지 번역이 되어 버려서 좀 이상하니 소스는 위의 독일어 버전을 보시면 됩니다.

=-=-=-=-=-=-=-=-=
http://youlsa.com

marten의 이미지

세벌의 이미지

GTK+ 도 C 언어로 되어 있는데 개체지향적으로 짜 놓았다고 들었습니다.

http://gtk.org

saxboy의 이미지

C++에서는 class와 struct가 구분되지 않는다는 것을 상기해보시면 도움이 될 것 같습니다. 실제로 C++의 클래스라는 것은 C의 단어로 바꾸어 어셈블리 레벨에서 생각해보면 함수포인터가 멤버로 들어있는 struct와 거의 동일합니다.

물론 C++의 언어적인 특성상 operator overloading이나 inheritance (특히 multiple inheritance) 등이 이런 형태의 코드 구성을 조금 쉽게 해주기는 합니다만, 실제로 이 것 때문에 C++이라는 언어자체가 ambiguity를 가지고 있는 것이기도 하지요.

저는 이런 형태의 코드를 무척 선호하는 편이라서 거의 항상 사용하지만 C라는 언어의 자체의 제약 때문에 귀찮은 일이 많습니다. 예를 들면 gtk의 widget들이 상속을 받기 위해서 사용하는 (로직과는 전혀 상관없는) 더미코드가 얼마나 많은지 보고 있노라면 답답해질 정도이니까요.

아... 디버깅이 조금 피곤하다는 단점도 있지요. :-)

onemind555의 이미지

POSA책 보면 도움이 됩니다..

-----------^^ ^^ ^^ ^^ ^^ ----------
..........................................................

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.