main ()의 함수에 대한 정의되지 않은 참조

사용자 3402584

별도의 파일로 프로그램을 만들려고했습니다. Unfortunatelty 코드를 작성하는 동안 오류가 발생했습니다. 생성자, 소멸자 및 함수 CzynnikiPierwsze에 대한 정의되지 않은 참조를 가리키고있었습니다. 그래서 나는 전체 코드를 하나의 코드로 만들기로 결정했습니다. 여전히 main () 함수에 문제가 있습니다. 'CzynnikiPierwsze (int)'에 대한 정의되지 않은 참조가 무엇인지 아이디어가 있습니까? 다음은 전체 코드입니다.

#include <iostream>
#include <cctype>
#include <vector>


using namespace std;
vector<int> CzynnikiPierwsze(int);


class NieprawidlowaDana                           //wyjatki
    {};
class SpozaZakresu
    {};



class RozkladLiczby{
    private:
        int *tab;
    public:
        RozkladLiczby(int);                  //konstruktor
        vector<int> CzynnikiPierwsze(int); //metoda
        ~RozkladLiczby();
};  

CLASS의 ///////////////// BODY //////////////////////////// ////////

RozkladLiczby::~RozkladLiczby()         //destruktor
{}

RozkladLiczby::RozkladLiczby(int n){
    int* tab = new int[n+1];
    int i,j;

    for( i=0;i<=n;i++)
        tab[i]=0;                  //zerujemy tablice

    for( i=2;i<=n;i+=2)
        tab[i]=2;                  //zajmujemy sie liczbami parzystymi

    for(i=3; i<=n;i+=2)
        for(j=i;j<=n;j+=i)         //sito erastotesa
            if(tab[j]==0)
                tab[j]=i;


}

   vector<int> RozkladLiczby::CzynnikiPierwsze(int m){
        vector<int> tablica;
        while(m!=1){
            tablica.push_back(tab[m]);
            m=m/tab[m];
        }

return tablica;

}


////////////////////////END OF THE BODY//////////////////////////////




int parsuj(char* argz){
    int i=0;
        while(argz[i] != '\0'){                  //funckja ktora konwertuje na int i sprawdza czy wprowadzaony zostal string
            if( !isdigit(argz[i]))
                throw NieprawidlowaDana();
                i=i+1;
            }
        int x = stoi(argz);
        if (x >= 2)
            return x;
        else
            throw SpozaZakresu();

}






//////////////////GLOWNY BLOK///////////////////////////////////////

int main(int argc,char* argv[]){


    vector<int> tablica,p;
    int i,n;
    int max;

     for( i=1;i<=argc-1;i++){
        n = parsuj(argv[i]);
        tablica.push_back(n);
    }

     max=tablica[0];

     for(i=1; i<=argc-1;i++){
        if(tablica[i]>max)
            max=tablica[i]; }  // sprawdzamy max 

    RozkladLiczby odp = RozkladLiczby(max);  //utwoorzylismy obiekt z maxa


     for(unsigned int i=0;i<=tablica.size()-1;i++){
        p=CzynnikiPierwsze(tablica[i]);
        cout<<tablica[i]<<" = ";
        int x= p[0];

        int licznik = 1;
        for(unsigned int j=1;j<=p.size()-1;j++){
            if(x==p[j])
                licznik++;
            else if(licznik!=1)
                cout<<x<<"^"<<licznik<<"*";
            else
                cout<<x<<"*";
        } 
            cout<<endl;

        }

return 0;

}

이 문제를 해결할 수 있다면 감사하겠습니다.

Abhishek bansal

전역 함수를 선언 vector<int> CzynnikiPierwsze(int);했지만 프로그램 어디에도 정의하지 않았습니다. 메인에서 클래스 멤버가 아닌 전역 함수를 호출하고 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

`_main_entry' 함수에서 `main'에 대한 정의되지 않은 참조

make에서`main '에 대한 정의되지 않은 참조

C ++ / Makefile 오류 :`main '에 대한 정의되지 않은 참조

링커 오류 :`main '에 대한 정의되지 않은 참조

main에서 호출되지 않은 경우 일부 OpenGL 함수에 대한 정의되지 않은 참조

(.text + 0x20) :`main '에 대한 정의되지 않은 참조 및 함수에 대한 정의되지 않은 참조

Eclipse CDT의 함수에 대한 정의되지 않은 참조

C ++의 함수에 대한 정의되지 않은 참조

Linux의 NASM Hello World :`main '에 대한 정의되지 않은 참조

정적 함수에 대한 정의되지 않은 참조

정적 함수에 대한 정의되지 않은 참조

Linux에서 컴파일 - '_start' 함수에서: (.text+0x20): 'main'에 대한 정의되지 않은 참조

crt1.o :`_start '함수에서 :-Linux에서`main'에 대한 정의되지 않은 참조

c-함수`_start '에서 : (.text + 0x20) :`main'에 대한 정의되지 않은 참조

내 함수에 대한 정의되지 않은 참조

'함수'에 대한 정의되지 않은 참조

함수에 대한 정의되지 않은 참조를 Clion

Cgo: [C 함수]에 대한 정의되지 않은 참조

함수 호출에 대한 정의되지 않은 참조

aruco 함수에 대한 정의되지 않은 참조

함수에 대한 정의되지 않은 참조? C ++

'cusolverDn'함수에 대한 정의되지 않은 참조

portaudio 함수에 대한 gcc 정의되지 않은 참조

함수 c에 대한 정의되지 않은 참조

기존 함수에 대한 정의되지 않은 참조

함수에 대한 정의되지 않은 참조 (C ++)

C ++ : void 함수에 대한 정의되지 않은 참조

C: '함수'에 대한 정의되지 않은 참조

mq 함수에 대한 정의되지 않은 참조