2014-10-01 1 views
0

Я пытаюсь использовать несколько файлов в первый раз на C++. Вот файлы, которые я написал.undefined ссылка на Class :: Class() и Class :: function()

Файл № 1: Box.hpp

#ifndef BOX_HPP 
#define BOX_HPP 

class Box 
{ 
    private: 
     int length; 
     int width; 
     int height; 

     Box() {} 

    public: 
     Box(int _length, int _width, int _height); 

     void set_dimensions(int _length, int _width, int _height); 
     int volume(); 
}; 

#endif 

Файл № 2: Box.cpp

#include "Box.hpp" 

Box::Box(int _length, int _width, int _height) 
{ 
    set_dimensions(_length, _width, _height); 
} 

void Box::set_dimensions(int _length, int _width, int _height) 
{ 
    length = _length; 
    width = _width; 
    height = _height; 
} 

int Box::volume() 
{ 
    return length*width*height; 
} 

Файл № 3: main.cpp

#include "Box.hpp" 
#include <iostream> 

int main() 
{ 
    Box box1 = Box(1,2,3); 
    std::cout << box1.volume() << std::endl; 
    return 0; 
} 

Когда я пытаюсь Запустите main.cpp. Я получаю следующие ошибки:

неопределенная ссылка на 'Box :: Box (интермедиат, Int, Int)'

неопределенная ссылка на 'Box :: объема()'

Я не могу понять, почему.

+2

Как вы строите программу? Вы связываете * оба * исходных файла? –

+0

Возможно, это поможет вам: http://stackoverflow.com/questions/14173217/c-calling-a-function-from-another-class – Matheno

ответ

1

Вы должны компилировать с использованием обоих файлов, таких как:

$ g++ main.cpp Box.cpp 

Я думаю, что Вы компилируете так:

$ g++ main.cpp 

 Смежные вопросы

  • Нет связанных вопросов^_^