头文件没有被读取?

时间:2013-11-14 15:43:12

标签: c++ header-files

所以这是我的代码:

主要

#include<iostream>
#include "Tclass.h"
#include "Tclass.cpp"


using namespace std;


int main(){
    int x = 7;
    Tclass object;
    cout << object.OFunction();
    return 0;
}

标头文件

#ifndef TCLASS_H
#define TCLASS_H



class Tclass
{
    public:
        Tclass();
        int OFunction();
};

#endif // TCLASS_H

C ++样式表(我相信这就是所谓的)

#include "Tclass.h"
#include<iostream>
#include<cstdlib>
#include<ctime>

using namespace std;

Tclass::Tclass()
{
    cout << "An object for this class has been created \n";
}

int Tclass::OFunction(){
    srand(time(0));
    return 1+(rand()%6);
}

我的问题是,我听说我不需要在我的代码中包含#include"Tclass.cpp"但如果没有它,我的代码将无法运行。此外,我从主要删除头文件仍然有效。我相信这个人是正确的,但我根本无法让这个工作。我使用的IDE是code :: blocks。

2 个答案:

答案 0 :(得分:1)

您不应该包含cpp文件(并且它不是样式表,它是源文件)您将main.cpp和Tclass.cpp分别编译为目标文件,然后将目标文件链接到一个二进制文件中。

哦,不要使用using namespace std,不要从教科书中复制代码,教科书中的代码与实际的生产代码有很大不同,教科书中的代码应该是简洁的,只显示具体的手头的话题。

答案 1 :(得分:0)

正确,您不应在主程序中包含.cpp文件。相反,你应该将文件添加到项目中(我没有使用Code :: Blocks很长一段时间,但我确信在菜单的某处有一个非常明显的“添加文件到项目”选项 - “文件” “或”项目“将是第一个看的地方)。

[不,它被称为“源文件” - 样式表是你在网络开发中使用的东西]