1、构造函数初始化列表

推荐在构造函数初始化列表中进行初始化

构造函数的执行分为两个阶段:初始化段、 普通计算段

2、对象成员及其初始化

 #include<iostream>
using namespace std; class Object
{
public:
Object(int num) :num_(num)
{
cout << "Object..." <<num_<<"..."<< endl;
}
~Object()
{
cout << "~Object..." << num_ << "..." << endl;
}
private:
int num_;
};
class Container
{
public:
Container(int obj1=, int obj2=):obj1_(obj1), obj2_(obj2)
{
cout << "Container..." << endl;
}
~Container()
{
cout << "~Container..." << endl;
}
private:
Object obj1_;
Object obj2_;
};
int main(void)
{
Container c(,);//先构造Object,再是Container析构次序相反 return ;
}

3、const成员、引用成员的初始化

const成员的初始化只能在初始化列表中进行

 #include<iostream>
using namespace std; //对象成员(对象所对应的类没有默认构造函数)的初始化,只能在构造函数初始化列表中进行
class Object
{
public:
Object(int num=) :num_(num), kNum_(num), redNum_(num_)
{
//kNum_=100; ERROR
//redNum_ = num; ERROR
cout << "Object..." << num_ << "..." << endl;
}
~Object()
{
cout << "~Object..." << num_ << "..." << endl;
}
private:
int num_;
const int kNum_; //const成员的初始化只能在构造函数初始化列表中进行
int& redNum_; //引用成员的初始化只能在构造函数初始化列表中进行
}; int main(void)
{
Object obj(); return ;
}

加入枚举类型

#include<iostream>
using namespace std; class Object
{
public:
enum E_TYPE
{
TYPE_A=,
TYPE_B=
};
public:
Object(int num=) :num_(num), kNum_(num), redNum_(num_)
{
cout << "Object..." << num_ << "..." << endl;
}
~Object()
{
cout << "~Object..." << num_ << "..." << endl;
}
void DisplaykNum_()
{
cout << "kNum_" << kNum_ << endl;
}
private:
int num_;
const int kNum_;
int& redNum_;
}; int main(void)
{
Object obj1();
Object obj2();
obj1.DisplaykNum_();
obj2.DisplaykNum_();
cout << obj1.TYPE_A << endl;
cout << obj2.TYPE_A << endl;
cout << Object::TYPE_A << endl;
return ;
}

C++笔记----构造函数与析构函数(三)的更多相关文章

  1. C++学习笔记-构造函数和析构函数

    构造函数和析构函数是C++的重要组成部分,了解构造函数和析构函数有助于深入了解C++ 构造函数 构造函数产生的原因 在C++中,有时候需要在对象创建的时候初始化数据,如果采用普通函数的话,每次初始化都 ...

  2. C++笔记----构造函数与析构函数(二)

    构造函数是一种特殊的成员函数.在创建对象的时候自动调用,对对象的数据成员进行初始化. (1)栈区中创建的对象,在生存期结束的时候会自动调用析构函数. (2) 在堆上创建的对象,要由程序员显示调用del ...

  3. 《C++ Primer Plus》10.3 类的构造函数和析构函数 学习笔记

    10.3.1 声明和定义构造函数构造函数原型:// constructor prototype with some default argumentsStock(const string &c ...

  4. C++学习笔记(7)----类的数组中构造函数和析构函数的调用顺序

    C++类的数组中构造函数和析构函数的调用顺序(2) 对于如下的代码: #include<iostream> using namespace std; class CBase { priva ...

  5. C++学习笔记(6)----基类和派生类的构造函数和析构函数的执行顺序

    基类和派生类:构造函数和析构函数的执行顺序 在Visual Studio中,新建控制台工程,构造类如下: #include<iostream> using namespace std; c ...

  6. python学习笔记(二十一)构造函数和析构函数

    python中的特殊方法,其中两个,构造函数和析构函数的作用: 比说“__init__”这个构造函数,具有初始化的作用,也就是当该类被实例化的时候就会执行该函数.那么我们就可以把要先初始化的属性放到这 ...

  7. C++学习笔记(1)-构造函数与析构函数

    1.C++规定,每个类必须有默认的构造函数,没有构造函数就不能创建对象. 2.若没有提供任何构造函数,那么c++自动提供一个默认的构造函数,该默认构造函数是一个没有参数的构造函数,它仅仅负责创建对象而 ...

  8. 内存的分配VS回收&构造函数VS析构函数

    之前有一个问题一直困扰着我,就是一个变量出了作用域,我以为这个变量的内存就被回收了,其实不是这样的,昨天问了一个高手,才豁然开朗,自己在看相关代码的反汇编代码,才知道原来真是这样就.这个问题,我想简单 ...

  9. C++C++中构造函数与析构函数的调用顺序

    http://blog.csdn.net/xw13106209/article/details/6899370 1.参考文献 参考1: C++继承中构造函数.析构函数调用顺序及虚函数的动态绑定 参考2 ...

随机推荐

  1. 关于kali2.0 rolling无法连接数据的解决办法

    在使用kali2.0时,经常遇到metasploit无法连接数据库的问题,经过在网上寻找资料,很多都是对kali2.0的,有些路径都是不同的了,所以未能解决, 最后在自己的摸索下,找到了如下方法: 其 ...

  2. 通过ios实现RSA加密和解密

    在加密和解密中,我们需要了解的知识有什么事openssl:RSA加密算法的基本原理:如何通过openssl生成最后我们需要的der和p12文件. 废话不多说,直接写步骤: 第一步:openssl来生成 ...

  3. 配置使用EF常见的一些问题及解决方案

    转自http://www.2cto.com/database/201511/449573.html 提示未注册,找不到驱动程序 No Entity Framework provider found f ...

  4. Oracle资源管理器介绍(一)

        数据库资源管理器通过控制数据库内部的执行调度来控制资源在各个会话之间的分布.通过控制所要运行的会话以及会话运行的时间长度,数据库资源管理器可以确保资源分布与计划指令相匹配,因此也符合业务目标. ...

  5. 三言两语之js事件、事件流以及target、currentTarget、this那些事

    厉害了我的哥--你是如此简单我却将你给遗忘   放假前再看某文档,里边提到两个我既熟悉又陌生的概念target.currentTarget,说他熟悉我曾经看到过这两个事件对象的异同处,说他陌生吧?很不 ...

  6. JavaScript预解析1

    var 不一定是用来定义局部变量的 jscript的全局变量和局部变量的分界是这样的:                  过程体(包括方法function,对象Object o ={})外的所有变量不 ...

  7. iOS模糊效果(毛玻璃效果)的实现

    前一段时间项目中用到毛玻璃效果,那时对UIBlurEffect类和 UIVisualEffectView这两个类做了一部分了解.但当时并没有去特别的深入研究,直到项目做完后,才静下心来好好研究了一番. ...

  8. CodeForces 515C. Drazil and Factorial

    C. Drazil and Factorial time limit per test 2 seconds memory limit per test 256 megabytes input stan ...

  9. spark API 介绍链接

    spark API介绍: http://homepage.cs.latrobe.edu.au/zhe/ZhenHeSparkRDDAPIExamples.html#aggregateByKey

  10. 【JAVA】JDK-SimpleDataFormat 线程不安全!

    [问题] publicclassProveNotSafe { staticSimpleDateFormat df = newSimpleDateFormat("dd-MMM-yyyy&quo ...