每天一个C++小程序(求圆面积)
2017-03-02 12:42
232 查看
如何在Ubuntu下编译C++程序
g++ -c filename(当前路径.cpp文件) //只编译,不练接,生成.o 文件g++ filename(当前路径.cpp文件) //既编译,同时链接,生成可执行文件(默认是a.out)
g++ filename -o test //既编译,同时链接,生成可执行文件名为test
运行执行文件 一般这样写 ./a.out
gcc与g++的区别
编译阶段是形同的,链接阶段g++默认链接C++库,gcc没有。所以一般情况下用gcc编译c文件,同g++编译cpp文件。但是也可以用gcc编译cpp文件,只是后面需要加一个选项-lstdc++,作用是链接c++库。还可以用g++编译c文件。
C++编写求圆面积的程序
#include <iostream> #define OK 1 #define PI 3.1415 using namespace std; class Circle { public: Circle(int radius) { Radius = radius; } Circle(Circle &C); ~Circle() {} int GetR() { return Radius; } double GetArea() const; private: int Radius; }; Circle::Circle(Circle &C) { C.Radius = Radius; } double Circle::GetArea() const { return PI * Radius * Radius; } int main() { int radius = 2; Circle myCircle(radius); std::cout<<"求得半径位2的默认圆的面积为:"<<myCircle.GetArea()<<endl; std::cout<<"请输入另一个圆的半径radius = "; std::cin>>radius; Circle youCircle(radius); std::cout<<"求得半径为"<<radius<<" 的圆的面积为:"<<youCircle.GetArea()<<endl; return OK; }
运行结果:
$g++ CircleArea.cpp -o CircleArea.out $./CircleArea.out 求得半径位2的默认圆的面积为:12.566 请输入另一个圆的半径radius = 5 求得半径为5 的圆的面积为:78.5375
复制构造函数
复制构造函数是一种特殊的构造函数,具有一般构造函数的所有特征,其形参是本类的对象的引用。其作用是使用一个已经存在的对象(由复制构造函数的参数指定),去初始化同类的一个新对象。下面是声明和实现复制构造函数的一般方法:
Class类名 {
public:
类名(形参表); //构造函数
类名(类名 &对象名); //复制构造函数
}
类名::类名(类名 &对象名) //复制构造函数的实现
{ 函数体 }
复制构造函数在下面三种情况中会被调用:
1.当用类的一个对象去初始化该类的另一个对象时:
int main()
{
Point a(1, 2);
Point b(a); //用对象a初始化对象b,复制构造函数被调用
Point c = a; //用对象a初始化对象c,复制构造函数被调用
Cout<<b.getX()<<endl;
Return 0;
}
2.如果函数的形参是类的对象,调用函数时,进行形参和实参结合时:
void f(Point p)
{
Cout<<p.getX()<<endl;
}
int main()
{
Point a(1, 2);
f(a); //函数的形参为类的对象,当调用函数时,复制构造函数调用
return 0;
}
3.如果函数的返回值是类的对象,函数执行完成返回调用者时:
Point g() {
Point a(1, 2);
return a;
}
int main() {
Point b;
//函数的返回值是类的对象,返回函数值时,调用复制构造函数
b = g();
return 0;
}
相关文章推荐
- 每天一个C++小程序(十四)--堆排序
- 每天一个C++小程序(十九)--桶排序
- 每天一个C++小程序(十五)--快速排序
- 每天一个C++小程序(十七)--矩阵链乘
- 每天一个c++小程序(1):快速排序
- 每日一个C++小程序(一)--Circle类 求面积
- 每天一个C++小程序(十八)--插入排序
- 每天一个C++小程序(求线段长度)
- 每天一个c++小程序(2):二维数组动态创建
- 每天一个C++小程序(十六)--线性表
- 每日一个C++小程序(五)--根据坐标求矩阵面积
- 每天一个小程序(7)——C++中sort函数的应用
- 每天一个C++小程序(二十)--简单的飘雪程序
- 一个C++的 XML 解析程序
- 一个程序员每天自动运行的程序
- 一个很简单C++的程序
- 一个简单封装用户命令的C++程序
- 解答: 一个简单的c++程序
- 一个简单的C++程序反汇编解析
- C++反汇编揭秘1 – 一个简单C++程序反汇编解析 (Rev. 3)