zoukankan      html  css  js  c++  java
  • C++中默认构造函数中数据成员的初始化

    构造函数的任务是初始化数据成员的,在类中,如果没有显示定义任何构造函数,编译器将为我们创建一个构造函数,称为合成的默认构造函数,合成的默认构造函数使用与变量初始化相同的规则来初始化成员。即当类中的数据成员没有在构造函数中显示初始化,将执行默认初始化

    1.对于内置类型(如int,double,char,bool等)和复合类型(数组,指针),定义任何函数体之外的内置类型或复合类型变量将被初始化0,对于函数体内的内置类型的对象,若没有初始化,其值是未定义的。

    2.具有类类型的成员通过运行各自的默认构造函数来进行初始化。

     1 #include <iostream>
     2 #include <cstdlib>
     3 #include <string>
     4 
     5 using namespace std;
     6 
     7 class test{
     8 public:
     9     bool a;
    10     int b;
    11     float c;
    12     string s;
    13     int *d;
    14     int e[3];
    15 };
    16 test global_a;  //定义在函数之外
    17 int main()
    18 {
    19     test local_a;  //定义在函数之内
    20     system("pause");
    21     return 0;
    22 }

    如上可以,定义在函数体之内的内置类型和复合类型,其值均是未定义的,随机的,而对于类类型string,自动执行其构造函数,初始化为空。

    只为训练自己,时刻锤炼一个程序员最基本的技能!
  • 相关阅读:
    文字超出2行显示省略号
    js调试工具console方法详解
    下厨如有神
    画地为牢——广州经济困局
    数字桩和记忆术
    想象力提高记忆能力的重要能力
    三元色
    轻松自我介绍三步走——曼陀罗思考法
    英语单词_巩固方法草稿A
    http、TCP/IP协议与socket之间的区别
  • 原文地址:https://www.cnblogs.com/coding-wtf/p/5786854.html
Copyright © 2011-2022 走看看