C++类成员变量赋值,C语言中的变量如何定义和赋初值-

  C++类成员变量赋值,C语言中的变量如何定义和赋初值?

  你知道C成员变量的初始化和赋值吗?坑很多,很多细节我也不清楚。

  今天写类的时候,类的一个成员变量是引用,所以初始化有问题。检查后发现,原引用的初始化和const常量一样,只能在构造函数的初始化列表中初始化。当我突然发现我的C基础本科,我学到的东西需要重温。

  至于为什么在成员变量中使用reference,这主要是因为成员变量是另一个类的对象,但是类禁止复制【如何禁止复制构造函数?其实很简单,声明为私有即可】。

  评论:

  在C++标准中(除了C++11版以后),类的成员变量的初始化是在构造函数中实现的,但是不能在类中设置默认值。其中,有三种特殊类型的成员变量,分别是静态类型成员变量、const常量类型成员变量和引用类型成员变量。

  1.引用的初始化和const常量一样,只能在构造函数的初始化列表中初始化。

  2.静态类型成员变量只能在类外部定义和初始化。

  #包括iostream

  #包含字符串

  使用命名空间std

  类别测试变量{

  公共:

  TestVar():b(2),e(a)

  {

  a=1;

  cout a b c d e f h endl

  }

  //私有:

  公共:

  //int a=0;//错误:ISO C禁止初始化成员“a”

  int a;//初始化可以在构造函数或初始化列表中

  //const int b=0;//错误:ISO C禁止初始化成员“a”

  const int b;//常数的正确初始化应该使用[构造函数的初始化列表]

  Int //引用类型变量和常量一样,只能在构造函数的初始化列表中,参数是同一类型的变量。

  //static int c=0;//ISO C禁止非常数静态成员“C”的类内初始化

  静态int c;

  静态常数int d=4;//注意只能使用整数数据[int.char]

  静态const char f= a//是的,char也是整数数据

  静态常数double h=9.9//书上说没有,但是g下还可以,和根编译器有关吗?

  };

  int TestVar:c=3;//更正静态成员的初始化方法

  int main()

  {

  TestVar t;

  t.a

  cout t . a t . e endl;

  返回0;

  }运行结果:

  将构造函数修改为:

  公共:

  TestVar():b(2),e(a)

  {

  cout a b c d e f h endl

  a=1;

  }运行结果:

  根据上面的比较,发现构造函数的初始化列表最早运行在构造函数体运行之前。

  此时B赋值为2,变量A没有初始化为随机值4197184,E是对A的引用,所以E的值也是4197184。

  补充:

  #包括iostream

  #包含字符串

  使用命名空间std

  类别测试变量{

  公共:

  TestVar():b(2),e(a) //const,

  {

  a=1;

  //c=99;

  /*静态常数*/

  静态常数int d=4;

  静态常数double h=9.9

  静态const char f= a

  cout a b c d e f h endl

  }

  //私有:

  公共:

  //int a=0;//错误:ISO C禁止初始化成员“a”

  int a;//初始化可以在构造函数或初始化列表中

  //const int b=0;//错误:ISO C禁止初始化成员b

  const int b;//常数的正确初始化应该使用[构造函数的初始化列表]

  //static int c=0;//ISO C禁止非常数静态成员“C”的类内初始化

  静态int c;

  //静态const int d=4;//注意只能使用整数数据[int.char]

  Int //引用类型变量和常量一样,只能在构造函数的初始化列表中,参数是同一类型的变量。

  //静态const char f= a//是的,char也是整数数据

  //静态const double h=9.9

  };

  int TestVar:c=3;//更正静态成员的初始化方法

  int main()

  {

  TestVar t;

  t.a

  cout t . a t . e endl;

  返回0;

  }运行结果:

  转载请联系作者授权,否则将追究法律责任。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: