디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

연산자 오버로딩 마지막으로 간단한 질문점 드릴게요

배틀멧돼지갤로그로 이동합니다. 2010.11.29 00:04:30
조회 53 추천 0 댓글 0

#include <iostream>
#include <string>

using namespace std;

class Poly; // forward declaration
//=====================================================================================
class Node
{
        friend class Poly;
private:
        int coefficient;
        int degree;
        Node *next;
public:
        Node(int c=0,int d = 0 , Node *n=NULL);
        Node(const Node& node);
        ~Node() {};
        void operator=(const Node& node);
};

Node::Node(int c,int d, Node *n)
{
        coefficient = c;
        degree = d;
        next = n;
}
Node::Node(const Node& node)
{
        coefficient = node.coefficient;
        degree = node.degree;
        next = node.next;
}


void Node::operator=(const Node &node)
{
        coefficient = node.coefficient;
        degree = node.degree;
        next = node.next;
}

//=====================================================================================

class Poly
{
private:
        Node *first;
public:
        Poly(Node *f=NULL); // 생성자
        ~Poly(); // 소멸자
        Poly(const Poly &poly); // 복사 생성자

        void print(); // 리스트 출력

        void init(int coe,int deg);
        void Insert(string &str);
        void init(int num);
        void input(int num);


        Poly operator+(const Poly& poly); // 배정연산자
        void operator=(const Poly& poly);


};


Poly::Poly(const Poly &poly)
{
        Node *current;

        for( current = poly.first; current->next != NULL; current = current->next );
        {
                init(current->coefficient,current->degree);
        }
}

Poly::Poly(Node *f)
{
        first = f;
}

Poly::~Poly()
{
        Node *current, *delnode;

        current = first;
        while( current != NULL )
        {
                delnode = current;
                current = current->next;
                delete delnode;
        }
}

void Poly::init(int coe,int deg)
{
        Node *newnode,*current;
        newnode = new Node(coe,deg,NULL);

        if( first == NULL)
                first = newnode;
        else
        {
                for( current = first; current->next != NULL; current = current->next );
                current->next = newnode;
        }
}


void Poly::input(int num)
{
        if(num <= 0)
        {
                cout<<" 0개이하의 다항식을 입력하실수는 없습니다"<< endl;
                return;
        }
        string poly;
        
        for(int i  = 0 ; i < num ; i ++)
        {
                cout<<i+1<<"번째 다항식 : ";
                cin>>poly;
                Insert(poly);
        }
}


void Poly::Insert(string &str)
{
        
        int xpos = str.find(\'x\')-1;
        int length = str.length();

        char coe[16] ="\\0";
        char deg[16] ="\\0";
        str.copy(coe,xpos,1);
        str.copy(deg,xpos+3,xpos+3);

        int coeR= 0;
        int degR = 0;
        int ss = 1;
        for( int i = xpos-1 ; i > -1 ; i--)
        {
                coeR+=((int)coe[i]-48)*ss;
                ss*=10;
        }
        if(str[0] == \'-\')
                coeR*=-1;
        ss = 1;
        for ( int j = length-(xpos+4) ; j > -1 ; j--)
        {
                degR+=((int)deg[j]-48)*ss;        
                ss*=10;
        }
        init(coeR,degR);
}

void Poly::print()
{
        Node *current;

    if ( first == NULL )
        cout << "비었어!";
    else
    {
        for ( current = first; current != NULL; current = current->next )
        {                        
                        if( current->coefficient> 0)
                                cout << "+";
                        cout << current->coefficient << "x^"<<current->degree;
        }
    }
    cout << endl;
}

void Poly::operator=(const Poly& poly)
{
        Node* current;

        for ( current = poly.first; current != NULL; current = current->next )
        {
                init(current->coefficient,current->degree);
        }
        print();
}


Poly Poly::operator+(const Poly& poly)
{

        Poly result;

        Node *firstpoly, *secondpoly ;
        int coe;

        for(firstpoly = first; firstpoly != NULL; firstpoly = firstpoly->next)
        {
                for(secondpoly = poly.first ; secondpoly != NULL; secondpoly = secondpoly->next)
                {
                        if(firstpoly->degree == secondpoly->degree)
                        {
                                coe = firstpoly->coefficient + secondpoly->coefficient;
                                result.init(coe,firstpoly->degree);
                        }
                }
        }
        result.print();
        return result;                //여기서 에러가 납니다...
}


int main()
{

        Poly a, b,c;
        int input;

        cout<< "[첫번째 다항식 입력 ]\\n항수 :";
        cin>>input;
        a.input(input);
        a.print();
        cout<<endl;

        cout<< "[두번째 다항식 입력 ]\\n항수 : ";
        cin>>input;
        b.input(input);
        b.print();
        cout<<endl;

        //cout<<"첫번째 다항식 : ";a.print();
        //cout<<"두번째 다항식 : ";b.print();

        c= a+b;                //이것을 위해 연산자오버로딩 사용하는데 +연산자 오버로딩은 바로 위에 있습니다

        return 0;
}

/////////////================================================================================

+연산자 오버로딩에서
return시 에러가 나는 이유가 뭔지좀 알수 있을까요?
자꾸 질문 올려서 죄송합니다...
        

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 연예인 안됐으면 어쩔 뻔, 누가 봐도 천상 연예인은? 운영자 24/06/17 - -
234796 3D 프로그래밍 도서 추천좀 해쥬세요 [3] 샤키(112.150) 11.02.17 124 0
234795 기계식 키보드 쓰는 횽들아.. [3] 기계닭(112.216) 11.02.17 148 0
234793 잡스 6주 시한부라는 찌라시가 도넹 [1] ㅁㅁ(211.109) 11.02.17 134 0
234790 해더 추가하는거 너무 헷갈린다.... 교도소우리집갤로그로 이동합니다. 11.02.17 80 0
234789 ㅇㅇㅃ횽 소환!!!!!! [1] 은행강도갤로그로 이동합니다. 11.02.17 56 0
234788 바보같은질문은 없습니다 [1] ㄹㅇㄴ(210.178) 11.02.17 98 0
234787 Keep compiler happy [2] aaaa(210.91) 11.02.17 87 0
234786 하남시 사는 친구가, 사대강 사업으로 유람선 띄운다고 공사중이라함ㅡㅡ; [4] 빕뱟뱟갤로그로 이동합니다. 11.02.17 169 0
234785 요새 이직 준비중인데(2) [1] 은행강도갤로그로 이동합니다. 11.02.17 107 0
234784 오빠야들.. 키보드는 hhk pro [4] iljeomobolt갤로그로 이동합니다. 11.02.17 129 0
234783 이탈리아 장인이 한땀한땀 에러를 내고 있어 [1] 대마법서오즈갤로그로 이동합니다. 11.02.17 156 0
234782 txt 파일을 실행하면 계속 cmd가 떠 ㅠㅠ 횽들 도와줘 [5] 초코슈갤로그로 이동합니다. 11.02.17 123 0
234781 [광고] C++ 늅늅이들에게 찾아온 절호의 찬스 [5] 천재플머(61.77) 11.02.17 357 0
234780 만수아저씨 한건 하셨네... [6] 물속의다이아갤로그로 이동합니다. 11.02.17 357 0
234779 퇴 to the 사 결정 [5] 물속의다이아갤로그로 이동합니다. 11.02.17 457 0
234778 스마르폰 사용자들에게 질문 하나만 하자. [6] 물속의다이아갤로그로 이동합니다. 11.02.17 168 0
234777 인서울 컴공 4학년이 for 문 돌릴줄 모르고 그런 경우 있음? [7] ddd(61.75) 11.02.17 481 0
234776 아오 어떡해갤로그로 이동합니다. 11.02.17 70 0
234775 wdk 써본 횽 있어? 데스티갤로그로 이동합니다. 11.02.17 99 0
234774 우분투 쓰는사람 있음? [7] Dijkstra갤로그로 이동합니다. 11.02.17 298 0
234773 c언어 2.0f의 의미는?! [4] 제군들(175.199) 11.02.17 197 0
234771 아래 주식이야기하는 횽이 있길래 나도 올려봄 [38] 곰들\'ⓧ\'갤로그로 이동합니다. 11.02.17 367 0
234770 어휴 겨우 구현..... 오늘 한 것 [3] [성대아싸]갤로그로 이동합니다. 11.02.17 203 0
234769 프갤형들 c언어 EOF관련된건데 답좀 ㅜㅜ [9] //(121.175) 11.02.17 182 0
234768 무결성 이라는거 [12] (175.120) 11.02.17 296 0
234767 너네들 령제로 암?? 일단 알면 들어와봐 ㅇㅇㅇㅇㅇ [3] 겜돌리는게(112.149) 11.02.17 85 0
234766 솔까말 학벌 빼고 [1] 하하하(119.70) 11.02.17 135 0
234765 이 프로젝트는 만료되었습니다. 빌드하시겠습니까? 이거 게속 뜨는데 [6] 내꿈은게임왕(183.104) 11.02.17 5135 0
234763 횽들 ! 이 기계식 키보드 어떻게 생각해? [8] 키보드닭(112.133) 11.02.17 143 0
234762 1학년때 C언어 말아먹고 이번에 복학하는데 [1] 우호앙(203.227) 11.02.17 148 0
234761 횽들 c언어 배우는 중인데 윤성우가 쓰는 파일이랑 내꺼랑 달라서 에러남 ㅋ [2] 내꿈은게임왕(183.104) 11.02.17 101 0
234760 자바스크립트 코드가 이해가 안가네여.. [1] 으잌(116.44) 11.02.16 85 0
234758 이 사진이 합성이 아니라는 증거가 뭐가 있을까요? [4] 피유우웅신갤로그로 이동합니다. 11.02.16 223 0
234757 svn에서 dump 하는거 질문있어요 asdf(61.109) 11.02.16 43 0
234756 기초적인 코딩 질문좀 올려요 ㅠㅠ [4] 초봉얼마(119.71) 11.02.16 75 0
234755 프밍 처음 배우려고하시는데 프밍배우는순서가 있다고 생각하시는분들 보세요 [1] 셀프김갤로그로 이동합니다. 11.02.16 145 0
234754 C언어 스킵하고 C++ 배워도 됨? [3] 내꿈은게임왕(183.104) 11.02.16 148 0
234753 여기 알고리즘 잘하시는분 계십니까? [2] 셀프김갤로그로 이동합니다. 11.02.16 126 0
234752 c++ 배우고 싶은데 좀 봐주라 [8] 난바빠(121.148) 11.02.16 172 0
234749 형들은 프로그래밍 배우면서 가장 고비가 뭐였음요? [12] 교도소우리집갤로그로 이동합니다. 11.02.16 222 0
234747 MFC 를 이용하여 파일전송 프로그래밍 ㅠㅠ 어떡하나요 ㅠㅠ [13] 고노노(203.170) 11.02.16 2259 0
234746 여자같은 게이... [2] new gay[max]갤로그로 이동합니다. 11.02.16 230 0
234743 퍼셉트론 재미있을거 같아서 보려는데... [6] SODmaster갤로그로 이동합니다. 11.02.16 274 0
234742 Unity 3D 프리로 깔았는데 프로젝트 생성이 안됨 해결부탁용(그림유 유니티개늅(175.119) 11.02.16 101 0
234741 어느 한 소년에게 물어보았다.. [3] ssonacy갤로그로 이동합니다. 11.02.16 132 0
234740 시발..고민댄다.. [32] 캐닭(112.216) 11.02.16 304 0
234738 형님들 웹개발 동아리 면접보는데 프로그래밍의매력이뭐임? [6] sparcs(110.76) 11.02.16 329 0
234736 미니 서든 온라인으로 만들려면 몇일이나 걸림? (내용) [4] 내꿈은게임왕(183.104) 11.02.16 137 0
234735 횽들 나 마지막 질문점. [6] 유식다운(211.205) 11.02.16 103 0
234732 열혈강의 C언어 본색 이책 어떰니까 [1] 박구갤로그로 이동합니다. 11.02.16 315 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2