自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 资源 (3)
  • 收藏
  • 关注

原创 如何写出优质的C++代码:(九)C++类模板的继承问题

正如我们所知,T是一个不确定的模板参数,这导致了PackList也是一个不确定的对象(或者参数等等,尽管std::list是我们熟知的容器),最终导致了PackList::iterator对于编译器来说是一个未知的对象,然后通过这个位置的对象去声明一个实例,肯定不符合C++的语法规则。对于调用基类成员函数无效的问题,编译器的诊断时间发生在早期(也就是在解析派生类模板的时候),也有可能是在晚期(当模板参数被具体的实参具现化的时候),C++的思想是尽早诊断。多态是C++一个重要的特性,我们一般将多态分为“

2023-11-16 19:04:30 28 1

原创 如何写出优质的C++代码:(八)C++继承体系的几个问题

另一方面,虚函数则是动态绑定的,不论是通过基类指针,还是派生类指针,最终都会调用派生类的函数CSon1::func1()。程序中,pB的动态类型是CSon1*,所以调用的是CSon1::func1()的缺省参数,而pB的静态类型是CBase*,所以此一调用的缺省参数来自CBase::func1()。这似乎跟我们预想的不一致,我们通过delete释放资源,最终只有基类的析构函数被执行,如果派生类中申请了大量的资源,将无法得到释放。程序中尽量不要重新定义基类的缺省参数,这样可能得不到你想要的结果。

2023-11-10 15:22:01 19 1

原创 如何写出优质的C++代码:(七)最大限度提高程序执行效率

我们在声明一个变量的时候,会伴随着对该变量构造函数的执行,当程序跳出变量作用域的时候,又会执行变量的析构函数,对于一些比较复杂的对象,这是一笔不小的开支,为此,尽管这种写法没有错,能够编译通过,但是,这样的写法是非常不提倡的,程序会遍历容器里的每一个元素,并对其做类型转换,会严重影响程序的执行效率。我们需要对方法A和方法B的执行效率做客观的分析,如果Widget的构造和析构的成本大于复制操作的成本,则方法A更优,反之,则方法B更优。转型会消耗程序的执行效率,程序中尽量避免强制转型,找到无需转型的替代方法。

2023-11-03 13:48:01 30

原创 如何写出优质的C++代码:(六)“传值”和“传引用”该如何选择

在我们写一个函数接口的时候,我们使用什么方法来进行参数传递呢?是“传值”还是“传引用”?两者会对我们程序的执行呈现出截然不同的结果。

2023-11-01 19:27:48 25 1

原创 如何写出优质的C++代码:(五)智能指针share_ptr的使用

C++标准库中的智能指针指的是“引用计数型智慧指针”,它会持续追踪当前共有多少对象指向某个资源,并在没有对象指向它时自动删除该资源。

2023-10-31 19:49:43 66 1

原创 如何写出优质的C++代码:(四)关于virtual的一些行为

可以看到,因为myclass是base的指针,在main中调用完delete之后,实际上只是执行了基类的析构函数,这个时候,如果在派生类析构函数中,如果也有资源需要释放,将会被忽略,进而出现内存泄漏。但并不是我们在写任何一个基类的时候,都将析构函数定义为virtual,这样增加了资源的开销,一般的原则是:只有当类中至少含有一个virtual函数,才为它声明virtual析构函数。换一种思维,对于一个析构函数为non-virtual的类,我们不应该尝试去继承它,因为这样会为程序后面的运行不可预测的恶果。

2023-06-30 22:01:48 40 1

原创 如何写出优质的C++代码:(三)C++给你做的那些事

【代码】如何写出优质的C++代码:(三)C++给你做的那些事。

2023-06-28 17:17:08 58 1

原创 如何写出优质的C++代码:(二)对象的初始化

在构建类的时候,会首先调用default构造函数,对成员变量进行初始化,对于上述的写法,程序后续又进行了copy的构造,即上述的赋值操作,使得上一步的初始化动作显得多余,这样降低了程序的执行效率。希望通过A提供的接口,获取m_type的值,但是从代码中我们可以看出,要想正确获取m_type的值,前提是A中的m_type已经初始化过了。有着严格的初始化顺序,成员变量的初始化顺序与变量的声明顺序一致,而与其在成员初始列的位置没有关系。我们写程序的时候,有必要形成一种良好的习惯:对声明的对象进行初始化。

2023-06-25 19:38:37 25

原创 如何写出优质的C++代码:(一)const的使用

当然,在实际的应用中,我们尽量谨慎使用const_cast,从某些角度讲,它降低了程序的安全性和稳定性。在程序中,const是使用频率较高的关键字,主要用来确保指针或其他变量不被随意修改。

2023-06-24 21:59:17 43 1

3d成像源代码的使用方法

3d成像源代码的使用方法

2023-07-20

c++运行库,很全

很好的运行库,版本很全,从vc6.0到vs2012都都有,有需要的可以下载。

2015-09-29

ftp客户端程序源代码

代码比较完整,已经编译通过,希望对大家有用。

2011-06-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除