对一个程序的思考5(C++各种函数调用)
2015-03-29 22:39
483 查看
/********************************************************************** * main.cpp * Compiler: GCC,VS,VC6.0 win32 * Author:WK * Time: 2015 3 29 ************************************************************************/ #include<iostream> using namespace std; class Coord { public: Coord(int a=0,int b=0); Coord(const Coord &p); ~Coord(); void print(); int getx(); int gety(); private: int x,y; }; void Coord::print() { cout<<x<<" "<<y<<'\n'; } int Coord::getx() { return x; } int Coord::gety() { return y; } Coord::Coord(int a,int b) { x=a; y=b; cout<<"这里只是为了验证构造函数运行了\n"; } Coord::~Coord() { cout<<"这里只是为了验证析构函数运行了\n"; } Coord::Coord(const Coord &p) { x=p.x; y=p.y; cout<<"这里只是为了验证拷贝构造函数运行了\n"; } //普通函数 Coord fun (Coord p) { cout<<"这里只是为了验证fun()函数运行了\n";//5.打印出 int a,b; a=p.getx()+10; b=p.gety()+20; Coord r(a,b);//6.调用自定义构造函数给对象r的数据成员分配内存并初始化 return r; //7.这里把r的值调用自定义拷贝构造函数赋给系统生成的无名函数用于返回 } //8.退出fun()函数时候调用自定义析构函数释放形参p //9.函数时候调用自定义析构函数释放函数体内定义的对象r //10.调用自定义析构函数释放系统自己生成的无名对象 int main() { Coord p1(30,40);//1.调用自定义构造函数给对象p1的数据成员分配内存并初始化 Coord p2; // 2.调用自定义缺省构造函数给对象p2数据成员分配内存并初始化为缺省值 Coord p3(p1); //3.调用自定义拷贝构造函数用p1代入法初始化p3并给p3对象数据成员分配内存 p2=fun(p3); //4.进入fun()函数先把实参p3对象调用自定义拷贝构造函数初始化fun()的形参 //这里p2接受了那个无名对象返回的值 p2.print();//11.输出 return 0; }//退出main()函数时候就会依次反着调用自定义析构函数来分别释放p3,p2,p1
相关文章推荐
- 在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern “C”声明?
- 在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern “C”声明?
- 编写一个程序,首先用opendir函数打开用户指定的目录,然后调用readdir函数读取该目录内容
- 在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”?
- 在C++ 程序中调用被 C 编译器编译后的函数,为什么要加 extern “C”?
- 你好,C++(27)在一个函数内部调用它自己本身 5.1.5 函数的递归调用
- (二)一个工作任务引起的乱战——C++程序编译为dll,让C#调用
- 简化以下程序,将函数对象 divide_by 转换为一个函数,并将 for 循环替换为用一个标准的 C++ 算法来输出数据
- 在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern “C”声明?
- 函数调用判断一个年份是否为闰年及程序的继续与结束
- 转载--在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”?
- c++如何一个文件如何调用在同一个工程下的另一个文件的函数
- 在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern “C”?
- C++调用一个成员函数的需求this指针的情况
- MATLAB中调用c++程序(函数)
- 在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”
- 编写一个程序,其main()调用一个用户定义的函数(以光年值为参数,并返回对应天文单位 的值).该程序按下面的格式要求用户输入光年值
- Java练笔:一个类作为另一个类的参数调用。顺带训练数据在栈和堆的走向。思考若用C++写,delete应该怎么写
- 在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”?
- C++程序调用Python的函数(简单应用)及Ubuntu16.04下codeblocks的环境配置