83.const与类】的更多相关文章

const常量对象,无法改变数据,只能引用尾部带const方法 类的成员如果是const,可以默认初始化,也可以构造的初始化,不可在构造函数内部初始化 类中的const成员,无法直接修改,可以间接修改 类的成员函数const三种情形:1.返回值const,2.返回常量,3.参数const,可读不可写,尾部const,常量对象可读不可以写,变量可以访问 const不适用于构造与析构 mutable不受const锁定 代码示例 #include <iostream> using namespace…
题目(一):我们可以用static修饰一个类的成员函数,也可以用const修饰类的成员函数(写在函数的最后表示不能修改成员变量,不是指写在前面表示返回值为常量).请问:能不能同时用static和const修饰类的成员函数? 分析:答案是不可以.C++编译器在实现const的成员函数的时候为了确保该函数不能修改类的实例的状态,会在函数中添加一个隐式的参数const this*.但当一个成员为static的时候,该函数是没有this指针的.也就是说此时static的用法和static是冲突的. 我们…
一.关于const类成员函数有以下几个需要注意的地方: 1. 在普通的非const成员函数中,this的类型是一个指向类类型的const指针,而const成员函数中,this的类型是一个指向const类类型对象的const指针.由于这个原因: (1) 返回值 函数名 (参数列表) const {…} 这种格式只能用在类的成员函数中,非成员函数只能使用这种形式:void f1(const std::string& s):(2) 如要返回该类对象的引用(*this),则在返回值声明前加上const(…
类的成员函数后面加 const,表明这个函数不会对这个类对象的数据成员(准确地说是非静态数据成员)作任何改变. 在设计类的时候,一个原则就是对于不改变数据成员的成员函数都要在后面加 const,而对于改变数据成员的成员函数不能加 const.所以 const 关键字对成员函数的行为作了更加明确的限定:有 const 修饰的成员函数(指 const 放在函数参数表的后面,而不是在函数前面或者参数表内),只能读取数据成员,不能改变数据成员:没有 const 修饰的成员函数,对数据成员则是可读可写的.…
1 每个对象中的常量 --- const数据成员 const限定,意味着“在该对象生命周期内,它是一个常量”. 关键字const 使被限定的量为常量 在该类的每个对象中,编译器都为其const数据成员分配存储空间.在该类的每个对象中,const数据成员可以取不同的值(可以初始化成不同的值),但是const数据成员的值一旦初始化以后就不能改变. 该初始化工作必须在构造函数里进行 2 类的编译时常量 --- 类的静态常量数据成员 static const 类的一个常量成员,该类的所有对象都只有一个实…
1. System概述: System类包含一些有用的类字段和方法.它不能被实例化. 2. gc()方法:垃圾回收器 public static void gc()       调用gc方法暗示着Java虚拟机做了一些努力来回收未使用的对象,以便能够快速地重用这些对象当前占用的内存.当控制权从方法调用中返回,虚拟机已经尽最大了努力从所有丢弃的对象中回收了空间. 调用System.gc()方法实际上等效于调用:Runtime.getRuntime().gc() 3. 代码实现: Person.ja…
我们知道,在C++中,若一个变量声明为const类型,则试图修改该变量的值的操作都被视编译错误.例如: const char blank = ‘’; blank = ‘\n’; // 错误 要声明一个const类型的类成员函数,只需要在成员函数参数列表后加上关键字const,例如: #pragma once #include<string> #include "human.h" using namespace std; class girl :public human {…
转自:http://blog.csdn.net/lihao21/article/details/8634876 我们知道,在C++中,若一个变量声明为const类型,则试图修改该变量的值的操作都被视编译错误.例如, [cpp] view plain copy   const char blank = ‘’; blank = ‘\n’;  // 错误 面向对象程序设计中,为了体现封装性,通常不允许直接修改类对象的数据成员.若要修改类对象,应调用公有成员函数来完成.为了保证const对象的常量性,编…
const成员变量 举个例子 #include <iostream> using namespace std; class A { public: A(int size) : SIZE(size) {}; private: const int SIZE; }; int main() { A a(); } 说明 在类中声明变量为const类型,但是不可以初始化 const常量的初始化必须在构造函数初始化列表中初始化,而不可以在构造函数函数体内初始化 但是 此时的const变量属于具体的一个对象,…
常量 const 在类里面定义常量用 const 关键字,而不是通常的 define() 函数. 语法: const constant = "value"; 例子: <?php Class Person{ // 定义常量 const country = "中国"; public function myCountry() { //内部访问常量 echo "我是".self::country."人<br />";…
const修饰类的成员函数 const修饰变量一般有两种方式:const T *a,或者 T const *a,这两者都是一样的,主要看const位于*的左边还是右边,这里不再赘述,主要来看一下当const修饰类的成员函数时,成员函数有什么特点.https://www.cnblogs.com/cthon/p/9166715.html 类的成员函数后面加 const,表明这个函数不会对这个类对象的数据成员(准确地说是非静态数据成员)作任何改变. 在设计类的时候,一个原则就是对于不改变数据成员的成员…
QObject在QT中是所有类的基类,经过MOC处理后代码如下 之所以贴出这段代码,是因为很多流程追踪到最后一些关键性函数都是出自这个类 源码 4.8.6 MOC版本 63 1 /**************************************************************************** 2 ** Meta object code from reading C++ file 'qobject.h' 3 ** 4 ** Created by: The Q…
 C++ Code  12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511…
问]在php中定义常量时,const与define的区别?  [答]使用const使得代码简单易读,const本身就是一个语言结构,而define是一个函数.另外const在编译时要比define快很多. (1).const用于类成员变量的定义,一经定义,不可修改.define不可用于类成员变量的定义,可用于全局常量.(2).const可在类中使用,define不能.(3).const不能在条件语句中定义常量.例如:    if (...){        const FOO = 'BAR'; …
C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助. Const 是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的. 一.Const作用    如下表所示: No. 作用 说明 参考代码 1 可以定义const常量 const int Max = 100; 2 便于进行类型检查 const常量有数据类型,而宏常量没有数据类型.编译器可以对前者进行…
常量是一个简单值的标识符(名字).如同其名称所暗示的,在脚本执行期间该值不能改变(除了所谓的魔术常量,它们其实不是常量).常量默认为大小写敏感.通常常量标识符总是大写的. 可以用 define() 函数来定义常量.在 PHP 5.3.0 以后,可以使用 const 关键字在类定义的外部定义常量,先前版本const 关键字只能在类(class)中使用.一个常量一旦被定义,就不能再改变或者取消定义. 常量只能包含标量数据(boolean,integer,float 和 string). 可以定义 r…
在程序中经常遇到const,但是对他还不是非常了解,今天看到一篇文章讲挺好的,所以复制过来了.... 原文链接:http://blog.csdn.net/Eric_Jo/article/details/4138548 C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助. Const 是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的. 一.Cons…
const可以用来声明常量也就是说他的值不能被修改: const成员必须在定义的时候同时初始化,不能进行赋值 如 const int a:a的值不能修改,不能给它赋值,如何才能让它一开始就拥有一个值? 1.在声明的时候对他进行初始化 const int a=1; 2.在函数中声明的形参,在函数被调用时会得到实参的值. 但是如果在类中呢? class Demo { const int ci; public: void get_ci() { return ci; } }; 当直接用这个类定义一个对象…
const是C语言的关键字,经C++进行扩充,变得功能强大,用法复杂.const用于定义一个常变量(只读变量),当const与指针,引用,函数等结合起来使用时,情况会变得复杂的多.下面将从五个方面总结const的用法. 1.const位置 const位置较为灵活,一般来说,除了修饰一个类的成员函数外,const不会出现先一条语句的最后.示例如下: #include <iostream> using namespace std; int main(int argc,char* argv[]) {…
本文记录了C++中的const关键字的内容,分为3个部分,const和define的区别,const的作用,const的使用. const和define的区别 const的作用 const用于定义常量:编译器可以进行静态数据类型的安全检查. const修饰函数形式参数:当参数为自定义类型或抽象数据类型时,应该将“值传递”改为“const &传递”,可以提高效率,如下: void fun(A a);效率低,函数体内产生A类型的临时对象用于复制参数a,临时对象的构造.复制.析构过程将消耗时间. vo…
C++中const 关键字的用法 const修饰变量 const 主要用于把一个对象转换成一个常量,例如: ; size = ; // error: assignment of read-only variable 上面的例子中,定义size为常量并初始化为512,变量size仍是一个左值,但是现在这个左值是不可修改的,任何修改size的尝试都会导致编译错误. 因为常量在定以后就不能被修改,因此const对象定义时必须初始化,否则会引起编译错误,例如: const int size; // er…
1.类与对象 对象:实际存在该类事物中每个实物的个体.$a =new User(); 实例化后的$a 引用:php的别名,两个不同的变量名字指向相同的内容 封装: 把对象的属性和方法组织在一个类(逻辑单元)里 继承:以原有的类为基础,创建一个新类,从而代码复用的目的: 多态:允许将子类类型的指针赋值给父类类型的指针. ------------------------------------- 2.自动加载对象: 自动加载通过定义特殊的__autoload函数,当引用没有在脚本中定义的类时会自动调…
1: 编译器处理不同     define宏是在预处理阶段展开,const常量是编译运行阶段使用. 2:类型和安全检查不同 const常量有数据类型,而宏常量没有数据类型,仅仅是展开.编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不到的错误. 3: 存储方式不同 内存空间的分配上.define进行宏定义的时候,仅仅是展开,有多少地方使用,就展开多少次,不会分配内存空间,编译时会在main函数里进行替换,只是单纯的替换,不会进行任何检查,…
文章转自  http://www.cnblogs.com/yc_sunniwell/archive/2010/07/14/1777416.html 为什么使用const?采用符号常量写出的代码更容易维护:指针常常是边读边移动,而不是边写边移动:许多函数参数是只读不写的.const最常见用途是作为数组的界和switch分情况标号(也可以用枚举符代替),分类如下: 常变量:  const 类型说明符 变量名 常引用:  const 类型说明符 &引用名 常对象:  类名 const 对象名 常成员函…
  const.volatile.mutable的用法 鸣谢作者: http://blog.csdn.net/wuliming_sc/article/details/3717017 const修饰普通变量和指针 const修饰变量,一般有两种写法: const TYPE value; TYPE const value; 这两种写法在本质上是一样的.它的含义是:const修饰的类型为TYPE的变量value是不可变的.对于一个非指针的类型TYPE,无论怎么写,都是一个含义,即value值不可变. …
const关键字是C++中常用的类型修饰符,用法非常灵活,使用const将大大改善程序的健壮性. const的作用 1.  定义const常量: 比如: const int Max = 100; 2.  便于类型检查: const 常量有数据类型,而宏常量没有数据类型. 编译器对前者进行类型安全检查: 对后者只进行字符替换,没有类型安全检查,在字符替换时可能会产生意料不到的错误. 比如: void func( const int nNum ) {--}  // 对传入的参数进行类型检查,不匹配则…
http://blog.csdn.net/Eric_Jo/article/details/4138548 C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助. Const 是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的. 一.Const作用    如下表所示: No. 作用 说明 参考代码 1 可以定义const常量 const int Max…
const: 1 定义变量 ,如下写法都可以: TYPE const ValueName = value;                  const TYPE ValueName = value; 2 当作为全局变量并且在他文件也想使用时:(默认const具有局部性) 1.CPP  :extern const TYPE ValueName = value;定义 2.CPP:  extern const  TYPE ValueName; 外部声明 上面两个const 和TYPE可以颠倒. 3…
const用法 1,定义全局变量的内存分配问题 #define  Pi_1  3.14       //使用#define宏 const double Pi_2 = 3.14    //使用const,这时候Pi并没有放入内存中 double  a = Pi_2;  //这时候才为Pi分配内存,不过后面再有这样的定义也不会再分配内存 double  b = Pi_1;  //编译时分配内存 double  c = Pi_2;  //不会再分配内存, double  d = Pi_1;  //编译…
下面的概述是参考的这篇文章:http://blog.csdn.net/bingxx11/article/details/7771437 c语言编程中也有,也需要头文件, 头文件不只是C++的类才需要! 比如: c中的string.h,  内存操作的头文件 #include <mem.h> 即是: c语言中, 函数/变量的声明和实现, 也可以像c++一样, 头文件中, 哪些函数/变量需要使用extern来说明? c语言有一个约定: 凡是在对应的.c文件中, 有那个函数的实现的, 就不加exter…