C++参数传递与返回值

2023-11-07

1、const member function(常量成员函数)
在类内 如果不改变数据 就写为常量成员函数

FUNCTION1()const {}

为什么要使用常量成员函数呢
for example

template<typename T>
class test
{

public:
test(double r=0,double i=0):re(r),im(i){}
double real()const  {return re;}
double imag()const  {return im;}
private:
T re,im;
}
{
const test c1(2,1);
cout<<c1.real();
cout<<c2.imag();
}

面对上述情况时 如果在类内函数real 和imag不声明为常量成员函数时 编译器会报错 也就是下述错误示例`

template<typename T>
class test
{

public:
test(double r=0,double i=0):re(r),im(i){}
double real()  {return re;}
double imag()  {return im;}
private:
T re,im;
}
{
const test c1(2,1);
cout<<c1.real();
cout<<c2.imag();
}

2、参数传递pass by value vs pass by reference(to const)
如果是pass by value 则是传递字节 在字节数较多的时候 比较浪费时间
如果是pass by reference 则是引用,底层就是指针 传递参数。 速度很快
在实际编程中尽量使用引用进行参数传递 而不要使用值传递
如果不希望改变参数的值 写为 const test&
如果会对传入的参数改变 则写为 test&

3、返回值传递return by value vs return by reference (to const)
引用形式 test& 函数名
值返回形式 函数类型 函数名

4、friend(友元)
(1)自由取得friend的private成员 friend可以直接拿private的值 如果不是friend则需要其他函数作为中间媒介 间接拿取,会导致效率比较低。
(2)相同类的各个对象互为friend友元

5、数据(data)的获取等级 最好设置为 private

6、什么时候可以不可以用引用
函数内部 声明了一个新对象 在结束时自动释放

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++参数传递与返回值 的相关文章

随机推荐

  • python基础(三)

    模块相关基础 1 1模块的格式 usr bin env python3 coding utf 8 这是一个注释 author lnssm import sys def test args sys argv if len args 1 pri
  • uView 2.0 http请求封装基本使用

    uview2 0 http封装 根据官网填写即可 注意你的路径跟官网的不一样需要改动 网址 https www uviewui com js http html 封装过程 此处示范的是get请求 新建src config request j
  • Bandicam v6.2.4.2083 班迪录屏软件解锁VIP中文便携版

    4K超清屏幕录像 Bandicam 绿色正式版已集成授权信息 自动屏蔽联网验证授权 启动即为已授权版 无试用版任何的限制 录制时间没限制 录制大于十分钟的视频没有水印 最好用的电脑录屏软件 Bandicam班迪录屏 Bandicam 班迪录
  • 设计模式——Go语言(Golang)版:23_访问者模式

    1 介绍 表示一个作用于某对象结构中的各元素的操作 它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作 访问者模式 Visitor 是一种操作一组对象的操作 它的目的是不改变对象的定义 但允许新增不同的访问者 来定义新的操作 访
  • 【C语言】杨氏矩阵

    题目描述 有一个数字矩阵 矩阵的每行从左到右是递增的 矩阵从上到下是递增的 请编写程序在这样的矩阵中查找某个数字是否存在 要求 时间复杂度小于O N 思路1 可以采用遍历方式一个个查找 但是这样时间复杂度为O N 不满足题目要求 思路2 先
  • onedrive同步任意文件夹

    需求描述 想要通过onedrive同步备份一个工作文件夹 依次打开OneDrive 设置 备份 管理备份 发现默认只能备份特定的文件夹 如下所示 而我只想备份文档中的一个子文件夹 OneDrive默认5G空间 应该够了 解决办法 1 以管理
  • 30个jQuery按钮悬停动画

    超炫酷的30个jQuery按钮悬停动画 1 028 人浏览 发表回复 按钮插件是最常见的jQuery插件之一 因为它用途广泛 而且配置起来最为方便 今天我们要分享的是30个超炫酷的jQuery悬停按钮动画 当我们将鼠标滑过按钮时 按钮的背景
  • 组网方案设计,运用Mesh组网实现无缝漫游!

    在当今社会 无线网络已经成为了人们在工作 学习 娱乐生活中必不可少的一部分 但一台路由器的信号范围是有限的 随着距离的增加就会出现信号变弱导致的网速慢 网络卡顿甚至断网的情况 所以在一些面积较广 障碍较多 结构较复杂的场景下就需要安装两个乃
  • 彻底搞懂Java的等待-通知(wait-notify)机制

    线程的生命周期转换 新建状态 New 新建一个线程对象 就绪 可运行状态 Runnable 线程对象创建后 其他线程调用了该对象的start方法 该状态的线程位于可运行线程池中 变得可运行 等待获取CPU的使用权 运行状态 Running
  • python读取openapijson文件所有接口信息

    import openpyxl import json from apistar schemas import OpenAPI with open r E 下载 default OpenAPI json r encoding utf 8 a
  • JAVA string类型的年月日期获取前一个月日期

    废话不多说 代码如下 String date 2023 01 SimpleDateFormat simpleDateFormat new SimpleDateFormat yyyy MM Date newdate simpleDateFor
  • 各种开源协议介绍

    各种开源协议介绍 BSD Apache Licence GPL V2 GPL V3 LGPL MIT 原文连接 https www open open com bbs view 1319816219625
  • C#中的变量祥解

    一 C 数据类型 A 值类型 值类型变量可以直接分配一个值 它是从System ValueType派生而来 值类型直接包含数据 比如int char float 他们分别存储整型数据 字符 浮点数 当你申明一个值类型时 系统分别空间来存储值
  • MySQL中的读锁和写锁

    MySql锁 数据库都是悲观锁 java redis zookeeper会有乐观锁 锁的概念 MySQL中的锁 MyISAM锁 MyISAM共享读锁 MyISAM独占写锁 MyISAM锁调度 InnoDb InnoDb行锁 InnoDb表锁
  • 21天打卡挑战学习MySQL——《Docker容器安装》第三周 第七篇

    活动地址 CSDN21天学习挑战赛 前言 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级 可移植的容器中 然后发布到任何流行的 Linux 机器上 也可以实现虚拟化 Docker支持在主流的操作系统平台上使用 包括 Wind
  • RecyclerView曝光埋点

    RecyclerView曝光埋点 在做客户端埋点的时候 一般分为三类事件 页面浏览事件 元素点击事件 列表item元素曝光事件 页面浏览事件和元素点击事件在做代码埋点时可以很简单的进行埋点 对列表item元素曝光事件的埋点相对来说就麻烦许多
  • 2. 初识Python脚本

    Python的系列课程是写给零基础的小白看的 如果基础比较好的小伙伴可以暂时先不关注 等待后续课程 Hi 大家好 我是茶桁 之前的课程已经给大家讲解了Python相关特性和基本语法 那么这节课呢 我们尝试着从最简单的脚本来开始认识Pytho
  • IDEA 项目结构出现 0%classes,0% lines covered解决方法

    Ctrl Alt F6 然后取消勾选 中间的那个No Coverage
  • 苹果邮件怎么添加qq邮箱_iPhone自带邮件无法登陆QQ邮箱?

    要说现在什么邮箱用的最频繁 个人认为是QQ邮箱 但如今我们都喜欢在手机上处理一些事情 接收和回复邮件也不例外 不过许多iPhone用户可能都遇到过 在苹果手机自带邮件内添加QQ邮箱时 总是显示用户名或密码不正确 今天就来帮大家解决这个问题
  • C++参数传递与返回值

    1 const member function 常量成员函数 在类内 如果不改变数据 就写为常量成员函数 FUNCTION1 const 为什么要使用常量成员函数呢 for example template