zoukankan      html  css  js  c++  java
  • 类里面的非static const成员

    类里面的成员变量可以用const修饰,在只用const不用static修饰的情况下,这种使用的限制比较多

    (1)不能定义处初始化,必须在类的构造函数初始化列表里面初始化(虽然在vs中,可以在定义处初始化,但是这是不符合语法的,如果用g++编译器,就会出现明显的报错,不利于程序的移植)

     1 class constNum{
     2    //const int size=10; 错误,不能在定义处对const成员变量进行初始化
     3      const int size;
     4 public:
     5    constNum(int ii=0);  
     6 };
     7 
     8 constNUm::constNum(int ii):size(ii){//const成员变量必须在成员构造函数初始化列表里面初始化
     9 
    10 }

    (2)const成员变量不能在构造函数中初始化

     1 class constNum{
     2     int size;
     3 public:
     4        constNum();
     5 
     6 
     7 };
     8 /*
     9 *    constNum::constNum(){
    10 *
    11 *       size=10;//在构造函数中初始化const成员变量是错误的
    12 *
    13 *     }
    14 *
    15 */

    (3)在类里面定义的常量,不能用来定于数组,类里面的常量与c语言里面的const常量的含义几乎一样,是运行时常量,不是编译时常量,类里面的const常量,只是意味着在对象的生命周期内,它的值不能改变

    1 class constNum{
    2    const int size;
    3    //int a[size]; const常量不能用来定义数组,只有枚举或者static const int size=10才能定义数组大小 
    4 };
  • 相关阅读:
    [LeetCode] Remove Linked List Elements
    [LeetCode] Delete Node in a Linked List
    [LeetCode] Valid Anagram
    [LeetCode] Ugly Number II
    自制工具:迅速打开一个Node 环境的Playground
    [LeetCode] Ugly Number
    [LeetCode] Happy Number
    [LeetCode] Isomorphic Strings
    [LeetCode] Word Pattern
    自制工具:上传修改过的文件到指定服务器
  • 原文地址:https://www.cnblogs.com/cplinux/p/5591875.html
Copyright © 2011-2022 走看看