Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[46] Re:이렇게 한번 짜봤습니다...그런뎅...^^;....
남병철.레조 [lezo] 3269 읽음    2001-11-26 10:33
안녕하세요? 레조입니다.

먼저 답변해주신 분들에게 감사드리며..
(저 혼자가 아니라 많은 분들이 도와주셔서 고맙습니다. T__T)
그냥 생각이나서 약간 다른 내용이지만 적어보겠습니다.

Class 내부에서 메소드를 정의할때 루프문등의 부하(?)가 큰 코드는
밖으로 빼주시는게 좋은 습관입니다.
(클래스 내부에 정의한 코드는 인라인 함수처럼 코드상에 매크로 복사
되듯이 됩니다. 즉, 루프 50까지 돌면 그 내부의 코드가 50번 반복
해서 컴파일 코드가 만들어집니다. 괜히 50라인이 증가되는 것이죠.. --;)
물론 요즘의 뛰어난 컴파일러는 이러한 부분을 단순히 경고만 해주고
잘작동하게 되지만 --;(별것 아니라고 항의하신다면... -.-;;)
다시말하면.. 컴파일러가 스스로 판단해서 이 코드는 좀 이상타.. 하고는
알아서 고침니다.. --;(프로그래머는 왜있는것인지.. -.-;;)
어쨋든 클래스 내부는 기본적으로 인라인 함수처럼, 컴파일 후에는 코드내에
붙여지게 됩니다.

또 하나더 짚고 넘어가자면.. 사용하신 코드에서 생성자를 사용할듯
말듯 하셨는데 그 부분에서 오류가 난것 같습니다.
생성자를 사용하시는 부분을 좀더 공부하시면 클래스 작성에서 더 유연해
지게될것입니다.
아래의 코드를 조금 변경했습니다.
(위에서 언급한 클래스 밖에서 정의한 내용입니다.)



//----------------------------------------------------------------------------
#include <conio.h>
#include <iostream.h>
//----------------------------------------------------------------------------
class base {
public:
    int OddSum();
};

int base::OddSum()
{
  int isum = 0;

  for(int n = 1; n <=50; n++)
  {
    isum = isum + (2*n - 1);
  }
  return isum;
}
//----------------------------------------------------------------------------
class derived : public base {
public:
  int EvenSum();
};

int derived::EvenSum()
{
  int isum = 0;

  for(int n = 1; n <= 50; n++)
  {
    isum = isum + ( 2 * n );
  }
  return isum;
}
//----------------------------------------------------------------------------
main()
{
    derived o;
    cout << o.OddSum() << endl;
    cout << o.EvenSum() << endl;

    getch();

    return 0;
}
//----------------------------------------------------------------------------



ps.
주변 사람들에게 bcbdn 많이 홍보해주세여~~ ^^;



신윤정 님이 쓰신 글 :
: #include <iostream.h>
:
: class base {
: public:
:     int oddsum()
:     {
:       base(int isum = 0;
:       for(int n = 1; n <=50; n++)
:       {
:          isum = isum + (2*n - 1);
:       }
:     return isum;
:     }
: };
:
: class derived : public base {
: public:
:     derived(int n) : base(n)
:     int oddsum2()
:     {
:       base(int isum = 0;
:       for(int n = 1; n <=50; n++)
:       {
:          isum = isum + (2*n);
:       }
:     return isum;
:     }
: };
:    
: main()
: {
:     derived o;
:
:     o.oddsum();
:
:     return 0;
: }
:
:
: 이렇게 1-100까지의 홀수의 합과 1-100까지의 짝수의 합을 구하는 프로그램을 작성해 봤는데영..
: 에러가 3개 나네용..
: 근데...에러 고치기 힘들어서여..
: 그리고...레조님과..태즈님...이렇게 신경써주셔서 정말정말~~고마워용~~^^..~
: 제가 짠것좀 한번 봐주시고...고쳐주시면...감사 하겠습니다..
: ~

+ -

관련 글 리스트
40 이렇게 한번 짜봤습니다...그런뎅...^^;.... 신윤정 2778 2001/11/25
52     Re:이렇게 한번 짜봤습니다...그런뎅...^^;.... 2716 2001/11/27
46     Re:이렇게 한번 짜봤습니다...그런뎅...^^;.... 남병철.레조 3269 2001/11/26
45     Re:이렇게 한번 짜봤습니다...그런뎅...^^;.... 나그네 2846 2001/11/26
42     Re:이렇게 한번 짜봤습니다...그런뎅...^^;.... 태즈 3348 2001/11/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.