#include <iostream>
using namespace std;
//面向对象的模型-全局函数成员函数class Test
{
public:int a;int b;
public:Test(int a=0,int b=0){this->a = a;this->b = b;}Test  TestAdd(Test &t2){//Test tmp;// tmp.a = this->a + t2.a;// tmp.b = this->b + t2.b;//return      tmp;Test tmp(this->a + t2.a,this->b + t2.b);return  tmp;         //返回一个元素C++编译器会将其copy成一个匿名对象}void prinT(void){cout << this->a  << endl<< this->b << endl;}
protected:
private:
};void ang(void)
{cout <<"this is a function!"<< endl;
}//全局函数的方式
//Test  TestAdd(Test &t1,Test &t2)
//{//
//  Test tmp;
//  return    tmp;
//}
int main()
{Test t1(1,2);Test t2(3,4);//全局函数的两种调用的的方式::ang();ang();//匿名对象的两种接收方式{Test t3 = t1.TestAdd(t2);    //生成的匿名对象直接转换为t3t3.prinT();Test t4;                              //匿名对象复制给t4 t4 = t1.TestAdd(t2);t4.prinT();}cout << "hello world!" << endl;system("pause");return 0;
}

函数的返回值是类的自身
这样实现函数的无限调用

#include <iostream>
using namespace std;
//面向对象的模型-全局函数成员函数class Test
{
public:int a;int b;
public:Test(int a=0,int b=0){this->a = a;this->b = b;}//在引用的处理之中,因为C++编译器已经替我们做了很多的工作//因此返回一个引用,程序员只需要返回变量自身就行了Test&  TestAdd2(Test &t2){this->a = this->a + t2.a;this->b = this->b + t2.b;return *this; //函数返回值是对象自身     C++编译器会将返回的自身变成一个引用}void ptintF(){cout<<this->a << endl;cout<< this->b << endl;}protected:
private:
};int main()
{Test t1(1,2);Test t2(3,4);//t1 = t1+t2;t1.TestAdd2(t2).TestAdd2(t2).TestAdd2(t2);         //返回引用就能实现返回对象自身 //这样函数在调用自身的时候返回的还是自身的引用还能再次的使用相应的函数t1.ptintF();cout << "hello world!" << endl;system("pause");return 0;
}

C++中全局函数和局部函数的关系相关推荐

  1. lua--函数深入:闭合函数,局部函数,尾调用

    lua函数具有两大特征:函数作为第一类值,函数具有特定的词法域(Lexical Scoping) 所谓第一类值:代表函数和其他传统类型的值是等价的(例如数字和字符串),函数可以同他们一样存储在变量,t ...

  2. c/c++中全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作用域的区别与联系

    C++ 变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为 6 种:全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作用域. 从作用域看: 全局变量具有全局作用域.全 ...

  3. vue中全局注册和局部注册

    全局注册 //在main.js中全局注册 import Vue from 'vue'//导入在components中创建的复用组件 import pageTools from '@/component ...

  4. IDEA以UML图表方式查看maven项目pom文件中全局及部分jar之间依赖关系

    以其中一个pom.xml文件为例,pom文件下右键,选择diagrams--show dependencies,当然还可以查看局部关系,及删除某个模块功能

  5. python局部函数

    文章目录 局部函数 1. 无返回值 2. 有返回值 3. 局部函数的作用域 局部函数 1. 无返回值 Python 局部变量指的是函数内部定义的变量,同样,Python 支持在函数内部定义函数,此类函 ...

  6. python函数局部变量_Python局部函数– functoolspartial()

    python函数局部变量 什么是Python局部函数? (What is a Python Partial Function?) Sometimes a function accepts multip ...

  7. MATLAB 基础知识 数据类型 函数句柄 使用函数句柄调用局部函数

    本文演示如何创建指向局部函数的句柄.如果函数返回指向局部函数的句柄,则可以在主函数外部调用局部函数.此方法可让您在单个文件中包含多个可调用函数. 在您的工作文件夹下的 ellipseVals.m 文件 ...

  8. python所有函数用法_Python函数使用方法(高级用法)

    前面章节,已经介绍了 Python 函数的所有基本用法和使用注意事项.但是,Python 函数的用法还远不止此,Python 函数还支持赋值.作为其他函数的参数以及作为其他函数的返回值. 首先,Pyt ...

  9. 【Android 逆向】函数拦截原理 ( 通过修改 GOT 全局偏移表拦截函数 | 通过在实际被调用的函数中添加跳转代码实现函数拦截 )

    文章目录 一.通过修改 GOT 全局偏移表拦截函数 二.通过在实际被调用的函数中添加跳转代码实现函数拦截 一.通过修改 GOT 全局偏移表拦截函数 使用 GOT 全局偏移表 拦截函数 , 只需要将 G ...

最新文章

  1. SAP中执行没有权限的事务
  2. python配置opencv最简单_【萌新】面向(Windows10)python的opencv环境配置“个人向”报错总结...
  3. AWS回应Elastic修改开源协议:创建“真正”开源的Elasticsearch分支
  4. How is product data bound in Opportunity Edit page
  5. css字体自定义,bootstrap自定义字体
  6. RACSignal的Subscription深入分析
  7. linux libusb应用实例,在Linux中使用libusb-1.0作为非root用户访问USB设备
  8. phpexcel如何读和写大于26列的excel
  9. 我又踩坑了!如何为 HttpClient 请求设置 Content-Type 标头?
  10. Windows 8 Directx 开发学习笔记(三)摄像机设置及控制正方体旋转
  11. 华为路由器OSPF配置
  12. 电池SOC仿真系列-基于GA-BP神经网络的电池SOC估算方法
  13. python 抓百度招聘信息,将搜索结果解析下来,用来跟踪招聘趋势数据,免费数据变为有用的东东
  14. AsciiDoc 的相关整理
  15. 知识付费——移动端音视频加密、防盗播实现方案
  16. 码率控制(二):CRF详解
  17. 2019-8-31-Latex-公式速查
  18. Flex游戏学习Flex布局
  19. 一些关于vim的入门资料
  20. ios中录音功能的实现AudioSession的使用

热门文章

  1. hdu 3572(最大流)
  2. 最大流ISAP算法模板
  3. 转: 基于elk 实现nginx日志收集与数据分析
  4. 网络基础知识--子网划分
  5. 引号不是字符串中唯一的可以被转义字符。下面是常见的转义序列列表:
  6. 【HTML5】 web上的音频
  7. Java POI 导出EXCEL经典实现 Java导出Excel
  8. JQuery-Table斑马线
  9. 海量数据库及分区4——《12年资深DBA教你Oracle开发与优化——性能优化部分》...
  10. Nginx 源码分析-- 模块module 解析执行 nginx.conf 配置文件流程分析 一