2016-01-24 92 views
0

當我試圖測試一下我的頭和實現文件創建的方法,我得到以下編譯錯誤:(C++)未定義的引用類文件錯誤

undefined reference to 'main_tucker_points::points::points(double, double, double) 

與成員函數相同的編譯錯誤發生我正試着打電話。

這裏是我的points.h文件的代碼:

namespace main_tucker_points 
{ 
    class points 
    { 
    public: 
     //CONSTRUCTORS 
     points(); 
     points(double x, double y, double z); 

     //MODIFICATION MEMBER FUNCTIONS 
     void set_x_point_location(double p_loc); 
     void set_y_point_location(double p_loc); 
     void set_z_point_location(double p_loc); 

     double get_x_coord(); 
     double get_y_coord(); 
     double get_z_coord(); 


     double shift_x_point(double angle, char axis); 
     double shift_y_point(double angle, char axis); 
     double shift_z_point(double angle, char axis); 

    private: 
     double x_coord; 
     double y_coord; 
     double z_coord; 
     double x_shift_coord; 
     double y_shift_coord; 
     double z_shift_coord; 
     double x_coord_new; 
     double y_coord_new; 
     double z_coord_new; 
     double angle; 
     char axis; 
    }; 
} 
#endif 

下面的代碼到我的類實現文件,points.cpp。

#include <cassert> 
#include "points.h" 
using namespace std; 

namespace main_tucker_points 
{ 
    points::points() 
    { 

    } 

    points::points(double x, double y, double z) 
    { 
     x_coord = x; 
     y_coord = y; 
     z_coord = z;  
    } 

    double points::get_x_coord() 
    { 
     return x_coord; 
    } 

    double points::get_y_coord() 
    { 
     return y_coord; 
    } 

    double points::get_z_coord() 
    { 
      return z_coord; 
    } 
} 

最後,這裏是我的main.cpp文件的代碼來測試成員函數。

#include <iostream> 
#include <cstdio> 
#include <cstdlib> 
#include "points.h" 

using namespace std; 
using namespace main_tucker_points; 

int main() 
{ 
    points p1(3.5, 3.6, 3.7); 

    printf("Coordinates are %f, %f, %f", p1.get_x_coord(), p1.get_y_coord(), p1.get_z_coord()); 

    return 0; 
} 
+1

請發佈您的構建命令。 –

回答

0

編譯它以這種方式

g++ -o myfile points.cpp main.cpp 
./myfile 

確保你在兩個.cpp文件具有#include "points.h"

+0

謝謝@RSahu,現在改變了它。您現在可以發佈反對票 –