c++中形参为引用和非引用时调用构造函数
#include<iostream> using namespace std; class numbered
{
private:static int seq;
public:
numbered(){ mysn = seq++; }
numbered(const numbered&n){ mysn = seq++; }
int mysn;
}; int numbered::seq = 0; void f(const numbered &s)
{
cout << s.mysn << endl;
}
//void f(const numbered s)
//{
// cout << s.mysn << endl;
//} int main(){
numbered a, b = a, c = b;
f(a); f(b); f(c);//结果为1,2,3。f里面参数传递的不是类对象而是类对象的引用,不再触发拷贝构造函数;传非引用时,numbered a调用一次构造函数,f(a)还要调用一次拷贝构造函数
system("pause");
return 0; }
c++中形参为引用和非引用时调用构造函数的更多相关文章
- C++中函数参数传递(非引用形参和引用形参)——学习笔记
1.非引用形参-copy 指针是非引用,copy.但值也会改变. 引用形参: const相关问题: const形参可以拷贝. 不能修改,不能赋值! 可以使用const初始化非const: 指针+con ...
- Java中的形参和实参的区别以及传值调用和传引用调用
名词解析: 1.形参:用来接收调用该方法时传递的参数.只有在被调用的时候才分配内存空间,一旦调用结束,就释放内存空间.因此仅仅在方法内有效. 2.实参:传递给被调用方法的值,预先创建并赋予确定值. 3 ...
- c++中为什么可以通过指针或引用实现多态,而不可以通过对象呢?
引言: 在c++中司空见惯的事情就是:可以通过指针和引用可以实现多态,而对象不可以. 那为什么?让我们来解开这神秘的暗纱! 1. 类对象的存储方式: 在一个类的实例中,只会存放非静态的成员变量. ...
- Java中的引用:强引用、软引用、弱引用、幻象引用(虚引用)
Java语言中,除了原始数据类型的变量(八大基本数据类型),其他都是引用类型,指向各种不同的对象. 理解引用对于我们掌握Java对象生命周期和JVM内部相关机制都是有帮助的. 不同的应用类型,不同之处 ...
- [转]Python中函数的值传递和引用传递
首先还是应该科普下函数参数传递机制,传值和传引用是什么意思? 函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题.基本的参数传递机制有两种:值传递和引用传 ...
- Java中到底是值传递还是引用传递?
Java中到底是值传递还是引用传递? 我们先回顾一下基本概念 实参和形参 参数在编程语言中是执行程序需要的数据,这个数据一般保存在变量中.在Java中定义一个方法时,可以定义一些参数, 举个例子: p ...
- Java中的四种引用(强引用、软引用、弱引用、虚引用)
以下内容摘自<深入理解Java虚拟机 JVM高级特性与最佳实践>第2版,强烈推荐没有看过的同学阅读,读完的感觉就是"原来学的都是些什么瘠薄东西(╯‵□′)╯︵┴─┴" ...
- Java中的软引用、弱引用、虚引用的适用场景以及释放机制
Java的强引用,软引用,弱引用,虚引用及其使用场景 从 JDK1.2 版本开始,把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期.这四种级别由高到低依次为:强引用.软引用.弱引 ...
- php中引用&的真正理解-变量引用、函数引用、对象引用
php的引用(就是在变量或者函数.对象等前面加上&符号) //最重要就是 删除引用的变量 ,只是引用的变量访问不了,但是内容并没有销毁 在PHP 中引用的意思是:不同的名字访问同一个变量内容. ...
随机推荐
- MySQL面试题看这一篇就够了
现在mysql相关的面试,面试官总会问一些相关的技术问题.在这里,因此就总结一些常见的mysql面试题,都是自己平时工作的总结以及经验.希望大家看完,能避开”面试坑”. 1.MySQL主从复制的原理. ...
- Kubernetes集群安装(自己搭过,已搭好)
k8s安装目录 1. 组件版本 && 集群环境 组件版本 etcd 集群 && k8s master 机器 && k8s node 机器 集群环境变量 ...
- Apache Kafka Consumer 消费者集
1.目标 在我们的上一篇文章中,我们讨论了Kafka Producer.今天,我们将讨论Kafka Consumer.首先,我们将看到什么是Kafka Consumer和Kafka Consumer的 ...
- (六)linux 学习 -- 从 shell 眼中看世界
The Linux Command Line 读书笔记 - 部分内容来自 http://billie66.github.io/TLCL/book/chap08.html 文章目录 字符展开 `*` 路 ...
- django settings.py 配置文件
目录 settings.py 配置文件 settings.py 配置文件 import os BASE_DIR = os.path.dirname(os.path.dirname(os.path.ab ...
- NLP自然语言处理的开发环境搭建
NLP的开发环境搭建主要分为以下几步: Python安装 NLTK系统安装 Python3.5下载安装 下载链接:https://www.python.org/downloads/release/py ...
- hdu 1022 Train Problem I【模拟出入栈】
Train Problem I Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- Go语言 ( 切片)
本文主要介绍Go语言中切片(slice)及它的基本使用. 引子 因为数组的长度是固定的并且数组长度属于类型的一部分,所以数组有很多的局限性. 例如: func arraySum(x []int) in ...
- Android--打开指定程序(微博/微信/QQ等)
Intent intent = new Intent(); ComponentName cmp = new ComponentName("com.sina.weibo"," ...
- AS3数字取整
AS3 数字取整方法int()去掉小数点trace(int(3.14)); //输出3trace(int(-3.14)); //输出-3Math.round()方法:Math.round()可以四舍五 ...