C++语法
整理C++重点语法
zxgailixien
这个作者很懒,什么都没留下…
展开
-
初始化列表-GCC 4.9编译通过
如下图所示,在冒号和花括号之间的代码部分称为构造函数的初始值列表,它的作用是给创建的对象的某些成员赋初值。这种是在构建对象的时候的初始化,是在对象创建成功之前完成的,和在函数体内赋值是不一样的,函数体内赋值是你的对象成员都已经创建好后对成员进行的赋值。Date(int year=1990,int month=1,int day=1) :_year(year), _month(month), _day(day) {} 那么,可以看到,这种初始化并不是必须的。但是在以下几种情况时是必须进原创 2020-09-07 17:13:30 · 119 阅读 · 0 评论 -
赋值构造与禁用-GCC 4.9编译通过
赋值构造禁用1.将赋值运算符声明为私有,并不予实现class Uncopyable{private:Uncopyable &operator=(const Uncopyable &);};2.使用deleteclass Uncopyable{Uncopyable &operator=(const Uncopyable &)=delete;};原创 2020-09-07 16:58:46 · 80 阅读 · 0 评论 -
浅拷贝与深拷贝-GCC 4.9编译通过
深拷贝和浅拷贝的定义可以简单理解成:如果一个类拥有资源(堆,或者是其它系统资源),当这个类的对象发生复制过程的时候,这个过程就可以叫做深拷贝,反之对象存在资源,但复制过程并未复制资源的情况视为浅拷贝。浅拷贝资源后在释放资源的时候会产生资源归属不清的情况导致程序运行出错。CA(const CA& C)是自定义的拷贝构造函数,拷贝构造函数的名称必须与类名称一致,函数的形式参数是本类型的一个引用变量,且必须是引用。当用一个已经初始化过了的自定义类类型对象去初始化另一个新构造的对象的时候,拷贝构造函数原创 2020-09-07 15:03:19 · 128 阅读 · 0 评论 -
拷贝构造与禁用-GCC 4.9编译通过
CExample(const CExample& C)就是我们自定义的拷贝构造函数。可见,拷贝构造函数是一种特殊的构造函数,函数的名称必须和类名称一致,它的唯一的一个参数是本类型的一个引用变量,该参数是const类型,不可变的。例如:类X的拷贝构造函数的形式为X(X& x)。当用一个已初始化过了的自定义类类型对象去初始化另一个新构造的对象的时候,拷贝构造函数就会被自动调用。也就是说,当类的对象需要拷贝时,拷贝构造函数将会被调用。以下情况都会调用拷贝构造函数:一个对象以值传递的方式传入函数原创 2020-09-04 17:06:34 · 67 阅读 · 0 评论