C/C++教程

C++基础

本文主要是介绍C++基础,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、简述

C++容器append方法,把对象放入容器会调用默认复制构造函数

函数形式:MyClass(const MyClass& obj);


二、默认构造函数

头文件:

  1 class MyClass
  2 {
  3 public:
  4     MyClass();
  5     MyClass(MyClass& obj);
  6     MyClass(const MyClass& obj);
  7 
  8     ~MyClass();
  9     MyClass & operator =(MyClass&);
 10 
 11 private:
 12 
 13 };

CPP:

  1 MyClass::MyClass()
  2 {
  3     qDebug() << "gz class" << endl;
  4 }
  5 
  6 MyClass::MyClass(MyClass& obj)
  7 {
  8     qDebug() << "gz &class" << endl;
  9 
 10 }
 11 
 12 MyClass::MyClass(const MyClass& obj)
 13 {
 14     qDebug() << "gz const &class" << endl;
 15 
 16 }
 17 
 18 MyClass::~MyClass()
 19 {
 20     qDebug() << "xg class" << endl;
 21 
 22 }
 23 
 24 MyClass & MyClass::operator=(MyClass&)
 25 {
 26     qDebug() << "operator new (=)" << endl;
 27     return *this;
 28 }


测试MyClass在容器中调用哪个默认构造:

  1 MyClass c;
  2 QList<MyClass> a;
  3 a.append(c);
  4 

输出结果:

  1 gz class
  2 
  3 gz const &class
  4 
  5 xg class
  6 
  7 xg class
这篇关于C++基础的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!