zoukankan      html  css  js  c++  java
  • C++构造函数要点

    1、作用:构造函数主要用来完成成员的初始化工作

    2、写法:与类同名的函数,一般为公有,在单例的情况下可以定义为私有,构造函数可以带参数,也可以重载,但是没有返回类型,可以不手动提供构造函数。

    3、继承:

    (1)基类没有定义构造函数的情况:

    派生类也可以不定义构造函数,全部采用默认的构造函数。

    如果只有派生类定义构造函数,只需要构造派生类对象即可,对象的基类部分使用默认构造函数来自动创建。

    (2)基类中存在构造函数:

    基类中存在不带参数的构造函数。如果基类定义了构造函数,而且该构造函数没有参数,那么它可以隐式的被继承,也就是说,派生类根本不需要构造函数。

    基类中存在带参数的构造函数。如果基类定义了带有参数的构造函数,则此构造函数必须被继承且在派生类中实现构造函数。同时提供一个将参数传递给基类构造函数的途径,以便在基类进行初始化时能获得必需的数据,在实现构造函数时使用base关键字。创建派生类的对象后,程序首先运行的是基类的构造函中的内容,然后才是派生类的内容。

    4、拷贝构造函数:

    拷贝构造函数是一种特殊的构造函数,函数的名称必须和类名称一致,它必须的一个参数是本类型的一个引用变量。拷贝构造函数是类本身就存在的一个构造函数。

    浅拷贝深拷贝:默认的拷贝构造函数已经能够处理大部分问题,其原理就是对应的变量进行赋值,但是这就会存在一个问题,当变量中存在指针或者动态成员时,拷贝指针可能不是我们想要的结果,这就是浅拷贝。在“深拷贝”的情况下,对于对象中动态成员,就不能仅仅简单地赋值了,而应该重新动态分配空间。

  • 相关阅读:
    抽丝剥茧设计模式- 责任链模式应用场景
    抽丝剥茧设计模式-工厂和抽象工厂模式
    抽丝剥茧设计模式-你真的懂单例模式吗?
    抽丝剥茧设计模式- 啰嗦几句
    生产环境ng配置
    Linux命令
    内容过滤报错
    user 报错
    cxlabel 显示不全的解决方法
    关于SQL事务的一些坑
  • 原文地址:https://www.cnblogs.com/lishuai0214/p/4338334.html
Copyright © 2011-2022 走看看