C ++에서 클래스를 컴파일 할 때 오류

물리학 자

C ++에서 3 차원 벡터에 대한 클래스를 만들려고했지만 몇 가지 오류가 있습니다. 나는 전에 파이썬에서 약간의 oop을 배웠지 만 여전히 oop 및 C ++에 익숙하지 않습니다. 헤더 파일 threevector.h, 클래스 threevector.cpp 파일 및 메인 프로그램 파일 main.cpp를 만들었습니다. 나는 내가 뭘 잘못했는지 알고 싶다.

// threevector.h
#ifndef THREEVECTOR_H
#define THREEVECTOR_H
#include <iostream>

class threevector {
    private:
        double xcoord, ycoord, zcoord;

    public:
        threevector();
        threevector(double x, double y, double z, char type);
        void print ();      
};
#endif // THREEVECTOR_H


//threevector.cpp
#include "threevector.h"
#include <cmath>

threevector() {
    xcoord = 0.0;
    ycoord = 0.0;
    zcoord = 0.0;
}

threevector(double x, double y, double z, char type) {
    if (type == 'c') {
        // cartesian coordinate
        xcoord = x;
        ycoord = y;
        zcoord = z;
    } 
    else if (type == 'p') {
        // polar coordinate
        // x = r, y = phi, z = theta
        xcoord = x*sin(y)*cos(z);
        ycoord = x*sin(y)*sin(z);
        zcoord = x*cos(y);
        }
}

void print () {
    std::cout << xcoord << '\t' << ycoord << '\t' << zcoord << std::endl;
}


// main.cpp
#include "threevector.h"
#include <cmath>
#include <iostream>

using namespace std;

int main() {
    threevector v0;
    v0.print();

    threevector v1(-1,2,4.384,'c');
    cout << "v1 = ";
    v1.print();

    return 0;
}

다음은 내가받는 오류 메시지입니다.

main.cpp(.text+0x15): undefined reference to 'threevector::threevector()'
main.cpp(.text+0x15): undefined reference to 'threevector::print()'
main.cpp(.text+0x15): undefined reference to 'threevector::threevector::threevector(double, double, double, char)'
main.cpp(.text+0x15): undefined reference to 'threevector::print()'
[Error] ld returned 1 exit status
빅터 폴 보이

threevector의 방법을 잘못 정의했습니다 . 그것은해야한다:

threevector::threevector() {
    xcoord = 0.0;
    ycoord = 0.0;
    zcoord = 0.0;
}

threevector::threevector(double x, double y, double z, char type) {
    if (type == 'c') {
        // cartesian coordinate
        xcoord = x;
        ycoord = y;
        zcoord = z;
    } 
    else if (type == 'p') {
        // polar coordinate
        // x = r, y = phi, z = theta
        xcoord = x*sin(y)*cos(z);
        ycoord = x*sin(y)*sin(z);
        zcoord = x*cos(y);
        }
}

void threevector::print () {
    std::cout << xcoord << '\t' << ycoord << '\t' << zcoord << std::endl;
}

의 모든 threevector메서드는 threevector의 범위에 있습니다.

다음과 같이 컴파일하는 것을 잊지 마십시오 main.cpp.

g++ threevector.cpp main.cpp

이것은 threevector동일한 개체 파일에있는 것처럼 제대로 연결 됩니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

템플릿 클래스를 구현할 때 C ++ 컴파일 오류

분류에서Dev

다른 C 파일에서 struct를 사용할 때 컴파일 시간 오류

분류에서Dev

C에서 함수 포인터를 호출 할 때 컴파일 오류

분류에서Dev

컴파일 할 때 클래스에 선언 된 멤버 함수 없음 오류

분류에서Dev

다른 클래스의 typedef'ed 멤버를 사용할 때 C ++ 컴파일 오류

분류에서Dev

메모장 ++에서 C ++를 컴파일 할 때 "지정된 파일을 찾을 수 없습니다"오류

분류에서Dev

Ubuntu에서 Latex를 컴파일 할 때 오류 메시지

분류에서Dev

c에서 strlcpy 함수를 사용할 때 컴파일러에서 오류가 발생합니다.

분류에서Dev

C ++ 코드를 컴파일 할 때 모호한 오류

분류에서Dev

Visual Studio 2013에서 sqlite.c를 컴파일 할 때 수신 된 오류 C4996

분류에서Dev

C ++의 맵 내에서 첫 번째와 두 번째 쌍에 액세스 할 때 컴파일러 오류 발생

분류에서Dev

Tcl Book에서 Echo 서비스 예제를 실행할 때 컴파일 오류

분류에서Dev

소스에서 PHP를 컴파일 할 때 OpenSSL에 오류 발생

분류에서Dev

Visual Studio / C ++에서 fbx SDK를 사용하여 프로젝트를 빌드 할 때 오류 컴파일

분류에서Dev

sass를 컴파일 할 때 Webpack 오류

분류에서Dev

Windows에서 pytorch를 빌드 할 때 C1001 내부 컴파일러 오류 발생

분류에서Dev

C ++에서 std :: map을 정의하고 사용할 때 컴파일 오류

분류에서Dev

다른 공용 클래스에서 변수를 초기화 할 때 C # 오류

분류에서Dev

Unity C # : Update ()에서 클래스의 함수를 호출 할 때 오류 발생

분류에서Dev

FreeBSD에서 자산을 컴파일 할 때 스택 일관성 오류

분류에서Dev

하위 디렉토리에서 cannont 액세스 클래스를 컴파일 할 때 오류가 발생했습니다.

분류에서Dev

Contiki에서 'hello-world'예제를 컴파일 할 때 오류 발생

분류에서Dev

셰이더를 컴파일 할 때 PyOpengGL에서 오류가 발생합니다.

분류에서Dev

CreateObject ( "webservice", ...)를 사용할 때 "Java 컴파일러에서보고 된 오류"

분류에서Dev

Angular 4에서 AoT를 컴파일 할 때 발생하는 오류

분류에서Dev

파일에 쓸 때 C 분할 오류

분류에서Dev

다중 집합에 요소를 삽입하려고 할 때 C ++ 11 컴파일 오류

분류에서Dev

우분투에서 C 프로그램을 컴파일 할 때 "파일을 찾을 수 없음"오류

분류에서Dev

헤더 파일에서 클래스 선언을 사용할 때 링커 오류

Related 관련 기사

  1. 1

    템플릿 클래스를 구현할 때 C ++ 컴파일 오류

  2. 2

    다른 C 파일에서 struct를 사용할 때 컴파일 시간 오류

  3. 3

    C에서 함수 포인터를 호출 할 때 컴파일 오류

  4. 4

    컴파일 할 때 클래스에 선언 된 멤버 함수 없음 오류

  5. 5

    다른 클래스의 typedef'ed 멤버를 사용할 때 C ++ 컴파일 오류

  6. 6

    메모장 ++에서 C ++를 컴파일 할 때 "지정된 파일을 찾을 수 없습니다"오류

  7. 7

    Ubuntu에서 Latex를 컴파일 할 때 오류 메시지

  8. 8

    c에서 strlcpy 함수를 사용할 때 컴파일러에서 오류가 발생합니다.

  9. 9

    C ++ 코드를 컴파일 할 때 모호한 오류

  10. 10

    Visual Studio 2013에서 sqlite.c를 컴파일 할 때 수신 된 오류 C4996

  11. 11

    C ++의 맵 내에서 첫 번째와 두 번째 쌍에 액세스 할 때 컴파일러 오류 발생

  12. 12

    Tcl Book에서 Echo 서비스 예제를 실행할 때 컴파일 오류

  13. 13

    소스에서 PHP를 컴파일 할 때 OpenSSL에 오류 발생

  14. 14

    Visual Studio / C ++에서 fbx SDK를 사용하여 프로젝트를 빌드 할 때 오류 컴파일

  15. 15

    sass를 컴파일 할 때 Webpack 오류

  16. 16

    Windows에서 pytorch를 빌드 할 때 C1001 내부 컴파일러 오류 발생

  17. 17

    C ++에서 std :: map을 정의하고 사용할 때 컴파일 오류

  18. 18

    다른 공용 클래스에서 변수를 초기화 할 때 C # 오류

  19. 19

    Unity C # : Update ()에서 클래스의 함수를 호출 할 때 오류 발생

  20. 20

    FreeBSD에서 자산을 컴파일 할 때 스택 일관성 오류

  21. 21

    하위 디렉토리에서 cannont 액세스 클래스를 컴파일 할 때 오류가 발생했습니다.

  22. 22

    Contiki에서 'hello-world'예제를 컴파일 할 때 오류 발생

  23. 23

    셰이더를 컴파일 할 때 PyOpengGL에서 오류가 발생합니다.

  24. 24

    CreateObject ( "webservice", ...)를 사용할 때 "Java 컴파일러에서보고 된 오류"

  25. 25

    Angular 4에서 AoT를 컴파일 할 때 발생하는 오류

  26. 26

    파일에 쓸 때 C 분할 오류

  27. 27

    다중 집합에 요소를 삽입하려고 할 때 C ++ 11 컴파일 오류

  28. 28

    우분투에서 C 프로그램을 컴파일 할 때 "파일을 찾을 수 없음"오류

  29. 29

    헤더 파일에서 클래스 선언을 사용할 때 링커 오류

뜨겁다태그

보관