![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 75
jakiechen68
我爱web开发!
展开
-
C++类静态成员的初始化
记住:通常静态数据成员在类声明中声明,在包含类方法的文件中初始化.初始化时使用作用域操作符来指出静态成员所属的类.但如果静态成员是整型或是枚举型const,则可以在类声明中初始化!!!#include iostream>using namespace std;class test{public:static int num;};int test:转载 2012-02-23 18:59:11 · 18189 阅读 · 2 评论 -
关于operator void*()和bool operator !()的一点理解
C++中有特殊的两个操作符可以重载,分别是void* 和 ! 先上代码:class A{public:};int main(){ A a; if(a) cout<<"c"; system("PAUSE");} 这种情况下,编译不通过,提示不能将对象a直接转化为bool型。 改进(原创 2013-11-09 11:19:06 · 2459 阅读 · 1 评论 -
while(cin)和while(!cin)的原理分析
今天看书的时候看到代码while(cin>>val),忽然就在想这样写的合法性是如何判定的。我们都知道cin是一个流对象,而>>运算符返回左边的流对象,也就是说cin>>val返回cin,于是while(cin>>val)就变成了while(cin),问题就变成了一个流对象在判断语句中的合法性。 不管是while(cin)还是if(cin),都是合法的,为什么呢?我们自己定义一原创 2013-11-09 09:57:58 · 3205 阅读 · 2 评论 -
关于istream_iterator<int>(cin)和istream_iterator<int>()的一点分析
最近在看STL,其中讲到容器这一部分的时候,有以下两个式子,有点疑惑:deque c(istream_iterator(cin), istream_iterator()); (1) //函数声明deque c((istream_iterator(cin)), (istream_iterator())); (2) //定义一个容器式子原本的含义都是要定义一个容器,容器的内容从原创 2013-10-26 12:47:07 · 1205 阅读 · 1 评论 -
三种快速排序以及快速排序的优化
转自:http://blog.csdn.net/insistgogo/article/details/77850381、快速排序的基本思想: 快速排序使用分治的思想,通过一趟排序将待排序列分割成两部分,其中一部分记录的关键字均比另一部分记录的关键字小。之后分别对这两部分记录继续进行排序,以达到整个序列有序的目的。2、快速排序的三个步骤:(1)选择基准:在待排序列转载 2013-08-19 22:08:55 · 8151 阅读 · 1 评论 -
error while loading shared libraries的解決方法
./tests: error while loading shared libraries: xxx.so.0:cannot open shared object file: No such file or directory那就表示系統不知道xxx.so 放在哪個目錄下。這個時候就要在/etc/ld.so.conf中加入xxx.so所在的目錄。 一般而言,有很多so檔转载 2013-03-20 15:15:08 · 323 阅读 · 0 评论 -
模板函数的定义和声明须在同一文件内
按照C++中代码的惯例,类声明在h文件中,类定义在cpp文件中,相应的成员函数声明也在h文件中,定义在cpp文件中。但是如果这样的架构用在模板函数中,在调用模板函数的地方链接器便会报错,error LNK2001: unresolved external symbol。将定义写在与声明相同的文件中问题解决,解释如下: “大部分编译器在编译模板时都使用包含模式。也就是一般使用的把模板转载 2013-03-05 15:45:09 · 415 阅读 · 0 评论 -
VC 中错误集锦备忘(持续添加ing....)
1、error c3872: “0x3000”: 此字符不允许在标识符中使用0x3000是汉语的空格,也就是全角空格,相当于一个汉字,但你又看不见它。你知道的,像逗号,有半角(,)和全角(,)之分的,其实空格也有。0x3000是全角的空格,0x20是半角的空格。你最好把这个语句的后面空白部分,都删除掉,免得有不可见的全角空格。===========================原创 2012-12-28 10:19:34 · 284 阅读 · 0 评论 -
open和fopen的区别
open和fopen的区别:1.缓冲文件系统缓冲文件系统的特点是:在内存开辟一个“缓冲区”,为程序中的每一个文件使用,当执行读文件的操作时,从磁盘文件将数据先读入内存“缓冲区”, 装满后再从内存“缓冲区”依此读入接收的变量。执行写文件的操作时,先将数据写入内存“缓冲区”,待内存“缓冲区”装满后再写入文件。由此可以看出,内存 “缓冲区”的大小,影响着实际操作外存的次数,内存“缓冲区”越大,则原创 2012-05-13 10:08:59 · 418 阅读 · 0 评论 -
C++虚函数表与对象布局
转自:http://blog.csdn.net/maliang1225/article/details/1571186 仅作查阅方便每个含有虚函数的类有一张虚函数表(vtbl),表中每一项指向一个虚函数的地址,实现上是一个函数指针的数组。虚函数表既有继承性又有多态性。每个派生类的vtbl继承了它各个基类的vtbl,如果基类vtbl中包含某一项,则其派生类的vtbl中也将包含同样的一项转载 2012-05-06 18:09:57 · 513 阅读 · 0 评论 -
cout<<endl 本质解析
C++中的cout但是coutC++中,有一种对象叫操控器(manipulators),操控器是专门用来操控stream的对象,常常只会改变输入或格式化输出的解释方式,在C++标准中,已经预定义好几种操控器,常见的有: flush 刷新output缓冲区,将内容写入输出设备 endl 向缓冲区插入换行符号并刷新,将内容写入输出设备 ends 向缓冲原创 2013-11-09 15:36:20 · 6355 阅读 · 1 评论