C++的静态成员函数,成员变量,构造函数,析构函数,拷贝构造函数

来源:互联网 发布:免费收银系统 知乎 编辑:程序博客网 时间:2024/05/17 15:57

在C++中有一些概念我们必须要彻底的理解,不然就会在程序设设计中埋藏一个不定时的”定时炸弹“。下面的一些文字都是本人在自学时的一些经验总结,虽然代码没有(后面我会补上相应的代码),但是读一读相信你也会有共鸣的。

1、构造函数

关于构造函数相信学习C++的没有不知道的,那么关于构造函数在C++中有那些陷阱呢又如何去避免呢?1)2)3)

2、析构函数

析构函数也是一样当我们创建的对象生命结束的时候,系统会自动的帮我们调用它,但是具体的实现还是必须要你自己去敲打代码。这里有几点需要注意的有:1)在父子类中,实现多太的时候,父类或者子类的析构函数写成需函数。2)创建的临时在初始化后,会立马被析构,这是如果你使用编译器去打印输出结果,虽然结果是你预期的,但是那不代表,结果就是正确的。3)

3、拷贝构造函数

在这里需要注意的就是关于"深","浅"拷贝的问题,主要原因就是,当在类的成员变量当中含有指针类型的变量时,我们用拷贝构造函数去初始化成员变量时,"浅"拷贝,只是对指针进行拷贝,不会创建原对象变量的副本,这就造成两个对象的成员变量指向同一快内存区域,一般在编译时会编译内存的double free,解决这一问题就必须使用"深"拷贝。拷贝构造函数调用场景:1)用已有的对象去初始化新创建的对象2)函数传参(引用除外)3)函数调用返回值(引用除外)

4、静态函数、静态变量

在C++中,如果在类的内部对变量或者函数加上static关键字去修饰,那就代表着这个成员变量或者成员函数不需要对类进行实例化也可以访问[静态成员变量使用前必须要初始化,这一点很重要],也就是说我们可以通过类名直接去访问类的静态成员和成员函数[利用这一特点有时我们用这个一特性来创建"单例"]。而类中的其他成员变量或者函数则必须实例话[创建对象],通过对象去访问,两外在类的成员函数内不可以访问类的其他非静态成员和函数。
0 0
原创粉丝点击