请问怎么编译多文件
这个问题困扰了很久了~~~例如下面的 程序有个类和主函数,我想把类放到头文件里.可是我按照书上的把类的定义部分放到.hpp然后把实现放到.cpp最后在主函数里包含头文件却老是说类没定义。大家可以用我给的代码说明一下.hpp应该放哪些内容,实现的.cpp文件又应该放哪些内容吗???先谢了~~~~~~~~
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
circle.hpp
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#include<iostream>
const double PI =3.14152;
const float FencePrice = 3.50;
const float ConcretePrice = 0.50;
class Circle{
private:
float radius;
public:
Circle(float r);
float Circumference(void) const;
float Area(void) const;
};
Circle::Circle(float r):radius(r)
{}
float Circle::Circumference() const
{
return 2*PI*radius;
}
float Circle::Area() const
{
return PI*radius*radius;
}
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
main.cpp
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#include"Circle.hpp"
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
float r;
float FenceCost,ConcreteCost;
cout.setf(ios::fixed);
cout.setf(ios::showpoint);
cout.precision(2);
cout << "Enter the radius of the pool:";
cin >> r;
Circle Pool(r);
Circle PoolRim(r + 3);
FenceCost = Pool.Circumference() * FencePrice ;
ConcreteCost = (PoolRim.Area() - Pool.Area()) *ConcretePrice;
cout << "Fencing Cost is $" << FenceCost << endl;
cout << "Concrete Cost is $" << ConcreteCost << endl;
system("pause");
return 0;
}
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
circle.hpp
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#include<iostream>
const double PI =3.14152;
const float FencePrice = 3.50;
const float ConcretePrice = 0.50;
class Circle{
private:
float radius;
public:
Circle(float r);
float Circumference(void) const;
float Area(void) const;
};
Circle::Circle(float r):radius(r)
{}
float Circle::Circumference() const
{
return 2*PI*radius;
}
float Circle::Area() const
{
return PI*radius*radius;
}
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
main.cpp
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#include"Circle.hpp"
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
float r;
float FenceCost,ConcreteCost;
cout.setf(ios::fixed);
cout.setf(ios::showpoint);
cout.precision(2);
cout << "Enter the radius of the pool:";
cin >> r;
Circle Pool(r);
Circle PoolRim(r + 3);
FenceCost = Pool.Circumference() * FencePrice ;
ConcreteCost = (PoolRim.Area() - Pool.Area()) *ConcretePrice;
cout << "Fencing Cost is $" << FenceCost << endl;
cout << "Concrete Cost is $" << ConcreteCost << endl;
system("pause");
return 0;
}
...全文
相关推荐
c程序的多文件编译
c程序的多文件编译
Makefile进行多文件的编译.rar_makefile_多文件 makefile_多文件编译
学习makefile对linux下的多文件进行同时编译,比gcc进行的单文件编译高效,方便
Dev-C++ 编译多文件程序的方法
Dev-C++ 编译多文件程序的方法 : 使用 Dev-C++ 编译运行程序会出现窗口一闪而过的现象,这不是程序的问题,而是因为程序运行结束,自动关闭了。在 return 0; 前面加上 getchar();(对于 C 程序)或者 std::cin.get();(对于 C++ 程序) 可以起到暂停的效果,然后按回车就会退出。
Zynq petalinux 多文件编译环境配置示例文件
Zynq petalinux 多文件编译环境配置示例文件,配合博文说明petalinux 下如何使petalinux 编译多文件C应用程序源文件不报错。
实验4 编译预处理及多文件
学习c++过程中的一个实验,帮助其他人更好理解编译预处理的过程


