`
ydbc
  • 浏览: 714989 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

const static 指针与引用

 
阅读更多

引用时C++中引入的,它的本质是指针,是一种特殊的指针。

1)必须初始化,且不存在NULL的引用。

2)作为参数传递的时候,不需形参。 指针的指针效果就和指针的引用一样,可以修改指针本身(即指针代表的内存地址)。

传值:实参的作用除了给形参初始化外,没有其他任何作用。

但传应用的时候,没有形参,参与的是对象本身。

我认为所谓的传址其实质还是传真,只是指变成了地址,同样还有形参的参与。所以形参本身(而不是形参指向的东西)修改了,那么实参是不能同步的。打比方说,指针是一个快捷方式,那么修改快捷方式所指向的对象,那么所以指向该对象的快捷方式都能同步。但如果修改其中一个快捷方式,将它指向另外一个对象,那么其他的快捷方式和这个快捷方式之间就没有联系了。

3)引用不可以改变其引用的对象。这和const修饰一样。

4)作为返回值的时候,引用不会触发类的拷贝构造函数。

一般传值的时候,都是先生成一个临时变量,然后调用类的拷贝构造函数。

顺便说一下如何初始化类中的const成员变量。我们都知道const变量需要初始化,但是类中的const成员变量如何初始化呢?

在构造函数中? 这肯定不行啊,那是赋值而不是初始化。 答案是在构造函数的初始化列表中,进行初始化,它在执行类的构造函数之前执行。这样每个类的对象都可以初始化为不同的值。

static的变量它在.h中进行声明,需要在.cpp中进行初始化。全局位置处,前面加上类的作用域,因为它不属于某个对象,而是所有对象共享,属于整个类。static const也如此初始化。

分享到:
评论

相关推荐

    函数指针_extern_typedef_const_static的基本用法

    收集了函数指针_extern_typedef_const_static的基本用法。 拿出来供大家共享

    2.5+this指针static成员与const对象1

    声明常成员函数格式如下:类型 成员函数名(参数表) const;class Clock{private :int hour, minute, second;pu

    IOS 关键字const 、static、extern详解

    IOS 关键字const 、static、extern详细介绍: 一、前言 阅读别人的代码(一些优秀的源码)总能发现一些常见的关键字,随着编程...(1) const用来修饰右边的基本变量或指针变量 (2) 被修饰的变量只读,不能被修改 下

    iOS开发中关键字const/static/extern、UIKIT_EXTERN的区别和用法

    二、关键字const/static/extern/UIKIT_EXTERN的释义和用法 1、const 这个单词翻译成中文是“常量”的意思。在程序中我们知道“常量”的值是不能变的,固定的。所以const关键字的作用就呼之欲出了: (1)const...

    智能指针类型转换.pdf

    为了⽀持这样的⽤法,shared_ptr提供了类似的转型函数 static_pointer_cast()、const_pointer_cast()、dynamic_pointer_cast(),它们与标准的转型操作符static_cast()、const_cast()和dynamic_cast()类似,但返回的...

    static 用法

    (针对静态数据成员而言, 成员函数不管是否是static, 在内存中只有一个副本, 普通成员函数调用时, 需要传入this指针, static成员函数调用时, 没有this指针. ) 请看示例程序四( (2nd)> (影印版)第59页) class ...

    C++成员函数后的const

     (static函数不能有const修饰符,const 成员函数是包含this指针的,这明显不被static函数允许)  3.const 成员函数不能修改对象的任意非静态成员  4.const 成员函数不能调用非const 成员函数  二、另外,...

    static_cast,dynamic_cast,reinterpret_cast,const_cast的区别及用法详解

    1.static_cast对类的指针只能转换有继承关系的类。对普通的指针来说只能在void*和其他指针之间转换。它还可转换简单的类型,比如int到char等。不能提供数字到指针的转换。不能提供不同类型指针之间的转换比如int*到...

    C++学习笔记、常见面试知识点.zip

    C++学习笔记和常见面试知识点,C++11特性,包括多态、虚表、移动语义、友元函数、符号重载、完美转发、智能指针、const和static、数组指针和指针数组、struct内存对齐、enum和union关键字等等。帮助了解C++的特性,...

    c/c++面试指南

    很不错的面试指南~~主要面试的经验~~c/c++基础 预处理 const static 引用 指针 字符串 c++继承多态 数据结构 链表 堆栈 排序关于智力测试

    程序员面试宝典-第三版(高清带目录)

     第7章 指针与引用  7.1 指针基本问题  7.2 传递动态内存  7.3 函数指针  7.4 指针数组和数组指针  7.5 迷途指针  7.6 指针和句柄  第8章 循环、递归与概率  8.1 递归基础知识  8.2 典型递归问题  8.3 ...

    Linux C程序设计大全

    第4章 C语言中的指针与字符串 4.1 sizeof运算符 4.1.1 sizeof运算符的应用——得到内置类型的大小 4.1.2 sizeof运算符的应用——得到复合类型的大小 4.2 指针的应用 4.2.1 指针与别名陷阱 4.2.2 数组的指针 4.2.3 ...

    C_C++问题总结

    3.2 指针和引用的区别 3.3 构造函数能否为虚函数 3.4 C语言编译全过程 3.5 单例模式 3.5.1 如何实现单例模式 3.5.2 如何实现单例模式 3.6 返回“引用”的格式、好处、注意事项 3.7 指针的表示 3.8 拷贝构造函数的...

    C++中this指针用法详解及实例

    C++中this指针用法详解及实例 概要: 本文简单介绍this指针的基本概念,并通过一个实际例子...this指针的具体类型与具体对象的类型以及对象是否被const关键字修饰 有关。例如,在类Employee的非常量函数中,this指针类

    《c语言深度解析》第3、4章 存储类、生命周期、作用域、链接域,指针与函数

    存储类与auto、static、register关键字指令、常量、变量的生命周期变量与函数的作用域链接域与extern、static关键字声明的意义第4章:存储空间、符号、地址一级指针与多级指针野指针与段错误void *指针类型const与...

    C语言深度解剖

    4.3 指针与数组之间的恩恩怨怨 4.4 指针数组与数组指针 4.5 多维数组与多级指针 4.6 数组参数与指针参数 4.7 函数指针 第五章 内存管理 5.1 什么是野指针 5.2 栈堆静态区 5.3 常见内存错误与对策

    static_cast,dynamic_cast,reinterpret_cast和const_cast的区别详解

    C-style cast举例: int i; double d; i = (int) d;上面的代码就是本来为double类型的d,通过(int)d将其转换成整形值,并将该值赋给整形变量i (注意d本身的值并没有发生改变)。这就是典型的c-style类型转换。...

    C语言基础知识点解析(extern,static,typedef,const)

    假设函数push与pop定义在一个文件中,而变量val与sp在另一个文件中定义本那个被初始化(通常不太可能这样组织程序),则需要通过下面这些定义与申明把这些函数与声明“绑定”在一起: 在文件file1中: extern int

    C++中4种强制类型转换的区别总结

    使用标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast。 const_cast,字面上理解就是去const属性。 static_cast,命名上理解是静态类型转换。如int转换成char。 dynamic_cast,...

Global site tag (gtag.js) - Google Analytics