【发布时间】:2018-09-11 18:15:24
【问题描述】:
我正在尝试使用 CodeBlocks 中单独文件中的类,但遇到了以下问题。
我有 3 个文件:main.cpp、clasa.h 和 clasa.cpp。
clasa.h
#pragma once
class clasa
{
public:
clasa();
};
clasa.cpp
#include "clasa.h"
#include <iostream>
using namespace std;
clasa::clasa()
{
cout<<"hi";
}
main.cpp
#include <iostream>
#include "clasa.h"
using namespace std;
int main()
{
clasa obj;
return 0;
}
当我将这 3 个文件包含到 项目 中时,输出为 hi。
当我不将它们包含到项目中时,main.cpp 就不会构建。但是,如果我用"clasa.cpp" 替换"clasa.h",它会再次起作用。
为什么它不工作?
【问题讨论】:
-
当你包含所有代码时它会编译。当您遗漏一些内容时,它不会编译。到底是什么问题?!
-
这个问题似乎介于链接器做什么和#include做什么之间。如所问,“为什么{省略源代码}不起作用?”在我看来,这不是一个格式正确的问题。
-
投票以“过于宽泛”而关闭。没有解释什么是理解的,什么是不理解的,这个问题要求一个相当大的关于编写、编译和链接 C++ 基础的教程。
标签: c++ file class header codeblocks