极速多用户网页音乐播放器(框架固定形式/底部音乐播放器)
<div><p>此网页使用了框架,但您的浏览器不支持框架。</p></div>
摘要: 标准C++中有四个类型转换符:static_cast、dynamic_cast、reinterpret_cast、和const_cast。下面对它们一一进行介绍。static_cast用法:static_cast < type-id > ( expression_r_r )该运算符把expression_r_r转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法: 用于类层次结构中基类和子类之间指针或引用的转换。进行上行转换(把子类的指针或引用转换成基类表示)是安全的;进行下行转换(把基类指针或引用转换成子类表示)时,由于没有动态类型检查,所以是不 阅读全文
posted @ 2013-06-16 22:46 飞鼠溪 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 1、构造函数不允许为虚函数,因为虚函数会有指向虚函数列表的指针;对象生成的过程为:先申请内存,然后调用构造函数生成对象。2、析构函数可以为虚函数,且存在子类的类最好是定义为虚函数,否则会造成删除指向子对象的父指针时不能调用子对象的析构函数。3、析构函数可以为纯虚函数,但必须把它实现,否则会编译不能通过,因为子对象仍是要调用父类的析构函数。4、一个不包含任何成员变量只有非虚成员函数的类,其大小为1字节。如果存在虚函数,则其大小为4字节,不管有多少虚函数,均为4字节。5、必须使用类参数初始化列表的情形:A,类中包含带参数的构造函数的对象;B,类中包含const变量;C,类中包含引用类型。 阅读全文
posted @ 2013-06-16 22:41 飞鼠溪 阅读(316) 评论(0) 推荐(0) 编辑
摘要: 假如存在以下代码:class Test{};int main(){ Test A; Test B(A); //调用拷贝构造函数 Test C = A; //调用拷贝构造函数 B = A; //此处才调用赋值构造函数}以下给出测试代码: 1 #include <iostream> 2 #include <stdlib.h> 3 using namespace std; 4 5 class AAA 6 { 7 public: 8 AAA() 9 {10 value++;cout << "value is " << value... 阅读全文
posted @ 2013-06-14 00:05 飞鼠溪 阅读(356) 评论(0) 推荐(0) 编辑
摘要: 看到一个面试题,要求不用+和-实现变量加1操作。就写了下,不知道有没有更简单的。代码如下: 1 #include<iostream> 2 3 using std::cout; 4 using std::cin; 5 using std::endl; 6 7 int main() 8 { 9 while(1)10 {11 int result = 0;12 cout << "input data:";13 cin >> result;14 15 if (result % 2)16 {17 ... 阅读全文
posted @ 2013-05-16 18:17 飞鼠溪 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 线程可以安排它退出时需要调用的函数,这样的函数称为线程清理处理程序,线程可以建立多个清理处理程序。处理程序记录在栈中,也就是说它们的执行顺序与它们注册时的顺序相反。它主要用来处理内存泄露,尤其是处理死锁。 pthread_cleanup_push来注册清理函数rtn,这个函数有一个参数arg。在以下三种情形之一发生时,注册的清理函数被执行: 1)调用pthread_exit。 2)作为对取消线程请求(pthread_cancel)的响应。 3)以非0参数调用pthread_cleanup_pop。 注意: 1)如果线程只是由于简单的返回而终止的,则清除函数不会被调用... 阅读全文
posted @ 2013-05-14 22:48 飞鼠溪 阅读(236) 评论(0) 推荐(0) 编辑