C ++:使用头文件和源文件,源文件无法编译

时间:2017-06-26 16:54:20

标签: c++

如标题所示 我有一个包含3(5)个文件的程序 main.cpp,Kessel.h,Kessel.cpp,其他两个都不重要

我的问题:当我在Kessel.cpp中更改代码时,在编译程序时它没有被注册...所以我尝试通过删除';'来做出明显的错误它只是说“目标是最新的。” 我正在使用Code :: Blocks btw。

Header Kessel.h:

#ifndef _KESSEL_H_
#define _KESSEL_H_

class Kessel {
    private:
        double KesselTemperatur;
        double KesselInhalt;
        int XKoord;
        int YKoord;
        int Breite;
        int Hoehe;
        char *Name;

   public:
        Kessel(const char *Name, int X, int Y, int B=150, int H=150, double 
        Inhalt=0, double Temperatur=0);
        ~Kessel();
        void Fuellen(double T2, double V2);
};

#endif // KESSEL_H

来源Kessel.cpp:

#include "Kessel.h"
#include "WinAdapt.h"
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <sstream>
#include <iostream>

void Kessel::Fuellen(double T2, double V2){

    double T1 = Kessel::KesselTemperatur;
    double V1 = Kessel::KesselInhalt;

    KesselTemperatur = (T1*V1+T2*V2)/(V1+V2);
    KesselInhalt+=V2;
}


Kessel::Kessel(const char *Name, int X, int Y, int B=150, int H=150, double             
Inhalt=0, double Temperatur=0)
: XKoord{X}, YKoord{Y}, Breite{B}, Hoehe{H}, KesselInhalt{Inhalt},         
KesselTemperatur{Temperatur}
{
    Kessel::Name = new( char[ strlen( Name )+1 ] );
    strcpy( Kessel::Name, Name );
}


Kessel::~Kessel(){
    delete []Name;
}

和main.cpp:

#include "Kessel.h"
#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <cmath>
#include <ctime>

//Kessel k1("Kessel1",10,10,130,100,10,30);
//Kessel k2("Kessel2",10,200,130,130,10,70);
//Kessel k3("Kessel3",200,10,10,70);
//Kessel k4("Kessel4",400,10);

当我取消评论Kessel k1时,我收到错误:

undefined reference to 'Kessel::~Kessel()'

需要帮助:/

1 个答案:

答案 0 :(得分:2)

我通过右键单击Code :: Blocks中的 Kessel.cpp 标题来解决问题

  

属性 - &gt;构建 - &gt;检查“属于目标”下的“DebugWindows”