zoukankan      html  css  js  c++  java
  • c++构造函数 对象初始化

    最近查看了关于c++构造函数的博客,为了防止关键知识的遗忘,特此记录一些要点,以便于今后的查阅。

    如果不主动书写构造函数,c++或默认提供一般构造函数,拷贝构造函数以及复制运算符的操作。
    一般的构造函数没有任何参数,默认提供的该种构造函数不执行任何操作
    默认提供的拷贝构造函数简单的将成员变量赋值
    默认提供的复制运算也是简单的将成员变量赋值
    假设有类A,3种初始化方法在代码中表现如下
    A a();  一般的构造函数(带参数的一般构造函数可以视作对a的重载)
    A a(b);  拷贝构造函数
    A a = c; 赋值运算
    值得注意的是 如果有动态分配的类成员 那么应该重载拷贝构造函数和赋值运算符
    主要是由于,默认的考培构造和=运算符都是简单的进行成员的复制,这样会导致两个对象的成员同时指向一块内存区域,两个成员粘滞在一起,改动了其中一个,另一个也会发生改变。所以必须重载这个函数以及运算符,保证每个对象的成员(动态分配)都有自己独立的空间。
    关于如何对赋值运算符进行重载, 会在另一篇中记载

  • 相关阅读:
    Problem: 八中上厕所
    Problem: 最短路上的统计
    股票买卖问题
    Redis(十二)——Redis为什么是单线程的?
    链表题汇总
    Redis(十一)——集群模式
    Redis(十)——哨兵模式
    Redis(九)——主从复制
    Redis(八)——客户端与服务器
    Redis(七)——事件
  • 原文地址:https://www.cnblogs.com/xdblog/p/5462381.html
Copyright © 2011-2022 走看看