C++
文章平均质量分 75
烂笔头Danky
这个作者很懒,什么都没留下…
展开
-
浅出理解静态成员函数(static member function)
在转入正题之前,我觉得应该先提出两个我本人自定义的术语:类级成员(class level member)和对象级成员(object level member)。我不知道在C++领域里是否已经有这样的术语,只是我觉得这两个术语可以很好地帮助我们理解static member function。在这里可以就有人想指正我了:本来成员(member)就是类独有的一部分,还分什么类级和对象级的。但我相信原创 2006-12-17 20:25:00 · 17921 阅读 · 7 评论 -
浅谈模板函数的重载解析优先顺序
函数模板可以被重载、显式特化重载、普通函数重载。如以下函数模板的重载声明:namespace LDQ_TEST{ //函数模板定义 template T sum( T, int ); //T == double的显式特化 template( double, int ); //普通(非模板)函数 double sum( double, double );}对于一个该函数的调用,编原创 2007-04-16 21:17:00 · 3694 阅读 · 0 评论 -
重载函数模板的要点
函数模板可以被重载。如:template class Array{ //...};template T min( const Array&, int );template T min( const T*, int );template T min( T, T );int main(){ Array iA(1024); int ia(1024); //T==int; min原创 2007-04-16 21:01:00 · 1263 阅读 · 0 评论 -
利用stringstream实现数据类型的转换。
stringstream是一个串的输入输出流类,它继承自iostream和stringstreambase。用VC编程时经常需要在字符串和各种基本数据类型之间进行转换,虽然标准库有提供itoa或atoi类似这样的函数,但有时这些函数并不能满足需要。其实利用stringstream可以帮到我们。 下面介绍一下用得比较多的字符串与基本数据类型的转换:#include #include u原创 2007-01-16 02:47:00 · 4415 阅读 · 0 评论 -
typedef的四个用途和两个陷阱
转自:赤龙的BLOG 用途一:定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量;以下则可行:typedef char* PCHAR; // 一般用大写PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针虽然:c转载 2007-01-16 19:09:00 · 1417 阅读 · 0 评论 -
创建二维数组的方法(随时更新)
对于常规的方法:T [n][n]的方法我就不说了。首先介绍两个动态的创建方法,然后介绍一下C++标准的中使用STL的容器vector创建二维数组的方法。1. 定义: const int ROW = 3; int size = 5; int (*pi)[ROW] = new int[size][ROW];操作方法: int k = 0; cout for ( i=0; i { f原创 2007-01-03 17:21:00 · 6884 阅读 · 1 评论 -
如何学好C++,用好类库很重要
转自:UML软件工程组织 C++类库介绍 再次体现了C++保持核心语言的效率同时大力发展应用库的发展趋势!!在C++中,库的地位是非常高的。C++之父 Bjarne Stroustrup先生多次表示了设计库来扩充功能要好过设计更多的语法的言论。现实中,C++的库门类繁多,解决的问题也是极其广泛,库从轻量级到重量级的都有。不少都是让人眼界大开,亦或是望而生叹的思维杰作。由于库的数量非常庞大,而转载 2007-01-02 20:00:00 · 1558 阅读 · 0 评论 -
给C++初学者的50个忠告
转自:http://www.gameres.com/ 1.把C++当成一门新的语言学习(和C没啥关系!真的。); 2.看《Thinking In C++》,不要看《C++变成死相》; 3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看; 4.不要被VC、BCB转载 2007-01-02 21:43:00 · 1844 阅读 · 1 评论 -
只要有可能,就推迟变量定义
转自:IT者 在极大程度上,为你的类(包括类模板)和函数(包括函数模板)提供正确的定义是战斗的关键性部分。一旦你得到正确的结果,相应的实现很大程度上就是直截了当的。但是仍然有一些注意事项需要当心。过早地定义变量会对性能产生拖累。过度使用强制转换会导致缓慢的,难以维护的,被微妙的 bug 困扰的代码。返回一个类内部构件的句柄会破坏封装并将空悬句柄留给客户。疏忽了对异常产生的影响的考虑会导致资源转载 2006-12-30 16:35:00 · 1031 阅读 · 0 评论 -
模板函数定义中的名字解释和模板函数的实例化点
在模板定义中有些结构在两个模板实例之间有不同的意思,而另外一些结构在模板的所有实例之间意想同。这取决于该结构是否涉及到模板的参数。如以下模板的定义:templateT min( T* array, int size ){ T min_val = array[0]; for( int i=1; i { if( array[i] min_val = array[i]; } prin原创 2007-04-17 15:11:00 · 1920 阅读 · 0 评论