
C++
文章平均质量分 87
EasyMike
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
复制构造函数
也许很多C++的初学者都知道什么是构造函数,但是对复制构造函数(copy constructor)却还很陌生。对于我来说,在写代码的时候能用得上复制构造函数的机会并不多,不过这并不说明复制构造函数没什么用,其实复制构造函数能解决一些我们常常会忽略的问题。 为了说明复制转载 2011-08-02 10:44:52 · 315 阅读 · 0 评论 -
基类指针与派生类指针的相互转换
1,直接用基类指针引用基类对象2,直接用派生类指针引用派生类对象3,用基类指针引用一个派生类对象,由于派生类对象也是基类的对象,所以这种引用是安全的,但是只能引用基类成员。若试图通过基类指针引用那些只在派生类中才有的成员,编译器会报告语法错误。(解决该问题的答案是虚函数和多态性)4,用派生类指针引用基类的对象。这种引用方式会导致语法错误。派生类指针必须先强制转换为基类指针,这种方法转载 2013-04-20 14:08:43 · 2125 阅读 · 0 评论 -
C++之异常处理
程序中的错误分为编译时的错误和运行时的错误。编译时的错误主要是语法错误,比如:句尾没有加分号,括号不匹配,关键字错误等,这类错误比较容易修改,因为编译系统会指出错误在第几行,什么错误。而运行时的错误则不容易修改,因为其中的错误是不可预料的,或者可以预料但无法避免的,比如内存空间不够,或者在调用函数时,出现数组越界等错误。如果对于这些错误没有采取有效的防范措施,那么往往会得不到正确的运行结果,程序不转载 2013-05-02 20:33:51 · 514 阅读 · 0 评论 -
[MFC]选择目录对话框和选择文件对话框
在MFC编程中经常会需要用到选择目录和选择文件的界面,以下总结一下本人常用的这两种对话框的生成方法:选择目录对话框void CDcPackerDlg::OnBnClickedDecgen() { char szPath[MAX_PATH]; //存放选择的目录路径 CString str; ZeroMemory(szPath, sizeof(szPath)); B转载 2013-05-03 21:57:51 · 578 阅读 · 0 评论 -
STL vector用法介绍
介绍这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作。本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用。通过阅读这篇文章读者应该能够有效地使用vector容器,而且应该不会再去使用C类型的动态数组了。 Vector总览vector是C++标准模板库中的部分内容,它是一个多功能转载 2016-06-26 15:20:59 · 318 阅读 · 0 评论 -
VC++音频技术之调节音量及设置静音
本文主要介绍如何使用混音器Mixer API函数实现系统音量调节,以及设置静音。1.混音器的作用及结构1.1混音器的作用 声卡(音频卡)是计算机进行声音处理的适配器,具有三个基本功能: (1)音乐合成发音功能 (2)混音器(Mixer)功能和数字声音效果处理器(DSP)功能 (3)模拟声音信号的输入和输出功能 混音器的作用是将来自音转载 2016-06-30 23:44:26 · 9425 阅读 · 0 评论 -
CStatic控件的基本使用
CStatic 继承于 CWnd,是一种特殊的窗体。他可以显示文本字符串(这也是最常用的用法)、图标、指针(cursor)、位图和增强图文元件. 通常静态控件不提供输入和输出。但是如果把他的属性设置为 SS_NOTIFY,他可以通知其父窗口的击鼠标事件。一。CStatic 用于显示文本 如果文本不变,可以直接设置其 Caption。如果想在运行过程中改变其显示文本,可以用转载 2016-07-01 19:44:45 · 441 阅读 · 0 评论 -
CWnd类
CWnd在头文件afxwin.h中,是MFC窗口类的基类,提供了微软基础类库中所有窗口类的基本功能。CWnd对象与Windows的窗口不同,但是两者有紧密联系。CWnd对象是由CWnd的构造函数和析构函数创建或销毁的。另一方面,Windows的窗口是Windows的一种内部数据结构,它是由CWnd的Create成员函数创建的,而由CWnd的虚拟析构函数销毁。DestroyWindow函数销毁W转载 2016-07-01 22:24:14 · 5302 阅读 · 0 评论 -
MP3编码分析
目录一、MP3文件格式解析....21、MP3文件及MPEG概述...2二、MP3编码原理....41、MP3编码流程...42、子带滤波器排——编码流程图中编号为1......53、改良后的DCT(MDCT)——编码流程图中编号为2......74、声音心理学模型——编码流程图中编号为3......85、位元分配、量化和Huffma转载 2016-07-02 15:35:57 · 1819 阅读 · 0 评论 -
Windows下FFmpeg快速入门
本系列文章导航Windows下FFmpeg快速入门ffmpeg参数解释mencoder和ffmpeg参数详解(Java处理视频)Java 生成视频缩略图(ffmpeg)使用ffmpeg进行视频文件转换成FLV整理java 视频处理 mencoderjava 视频处理 ffmped+mencoder Windows下FFmpeg转载 2016-07-05 11:47:42 · 448 阅读 · 0 评论 -
【const】用法详解
面向对象是C++的重要特性. 但是c++在c的基础上新增加的几点优化也是很耀眼的就const直接可以取代c中的#define以下几点很重要,学不好后果也也很严重const1. 限定符声明变量只能被读const int i=5;int j=0;...i=j; //非法,导致编译错误j=i; //合法2. 必须初始化const int i=5; /转载 2013-04-25 01:43:52 · 451 阅读 · 0 评论 -
C++运算符优先级
优先级操作符描述例子结合性1()[]->.::++--调节优先级的括号操作符数组下标访问操作符通过指向对象的指针访问成员的操作符通过对象本身访问成员的操作符作用域操作符后置自增操作符后置自减操作符(a + b) / 4;array[4] = 2;ptr->age = 34;obj.age = 34;转载 2013-04-22 22:24:42 · 529 阅读 · 0 评论 -
C++类型转换总结
C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是:TYPE b = (TYPE)a。C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。const_cast,字面上理解就是去const属性。static_cast,命名上理解是静态类型转换。如int转换成char。dynamic_cast,命名上理解是动态类型转换。如子类和父类之间的多转载 2013-04-14 01:50:41 · 513 阅读 · 0 评论 -
const的常见用法
const用法主要是防止定义的对象再次被修改,定义对象变量时要初始化变量 下面我就介绍一下几种常见的用法1.用于定义常量变量,这样这个变量在后面就不可以再被修改 const int Val = 10; //Val = 20; //错误,不可被修改转载 2011-08-09 17:07:11 · 302 阅读 · 0 评论 -
C++ - _T含义 C++语言中“_T”是什么意思?
_T("")是一个宏,定义于tchar.h下。#define __T(x) L ## x#define _T(x) __T(x)--------------------------------------------------------------_T("Hello")是一个宏,他的作用是让你的程序支持Unicode编码,因为Windows使用两种字符集ANSI和UNI转载 2011-11-17 16:11:16 · 5670 阅读 · 0 评论 -
浅谈C++容器
什么是容器 首先,我们必须理解一下什么是容器,在C++ 中容器被定义为:在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对像的指针,这种对象类型就叫做容器。很简单,容器就是保存其它对象的对象,当然这是一个朴素的理解,这种“对象”还包含了一系列处理“其它对象”的方法,因为这些方法在程序的设计上会经常被用到,所以容器也体现了一个好处,就是“容器类是一种对特定代码重用问题的良好的解决方案”转载 2012-01-07 12:01:57 · 326 阅读 · 0 评论 -
C++string类常用函数
string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常stri转载 2012-01-04 16:03:10 · 298 阅读 · 0 评论 -
C++中的指针用法汇集
C++程序设计重要基础就是类和对象,对象指针是很重要的一部分,包括指向对象的指针、指向对象成员的指针、this指针、指向对象的常指针、指向常对象的指针等。 1、指向对象的指针 定义:对象空间的起始地址就是对象的指针。 说明:在建立对象时,编译系统就为每个对象分配一定的存储空间以存放其成员,不过注意,在一般情况下不同对象的数据存储单元中存放的数据成员是不相同,而不同对象转载 2012-01-04 16:11:24 · 301 阅读 · 0 评论 -
[C++]MySQL数据库操作实例
由于课程大实验需要使用c++操作MySQL数据库,经过一番研究终于成功实现VS2008中与MySQL的连接。 环境设置:安装完MySQL之后,将安装目录中的include目录下的libmysql.lib文件拷到VS2008安装目录中的VC\lib\下,然后在 项目-选项-c/c++-常规 中的附加包含目录以及链接器-常规中的附加库目录中加入“c:\MySQL\include\”,并转载 2012-02-12 10:49:51 · 336 阅读 · 0 评论 -
C语言的一些string函数
strcmp函数:原型:extern int strcmp(const char *s1,const char * s2);用法:#include 功能:比较字符串s1和s2。 说明: 当s1s2时,返回值>0 即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。如: "A""A" "computer">"compare"特别注原创 2012-02-13 09:49:05 · 438 阅读 · 0 评论 -
MFC中的OnDraw和OnPaint的对比
学习中遇到一个问题,OnDraw与OnPaint有什么区别?上网搜索了一下,又查了一下MSDN和MFC的一些源文件,现整理如下。OnPaint是WM_PAINT消息的消息处理函数,在OnPaint中调用OnDraw,一般来说,用户自己的绘图代码应放在OnDraw中。OnPaint()是CWnd的类成员,负责响应WM_PAINT消息。OnDraw()是CVIEW的成员函数,没有响应消转载 2013-04-09 22:16:02 · 777 阅读 · 0 评论 -
visual c++常用小代码
1.打开记事本:WinExec("notepad.exe",SW_SHOW); 2.打开网页:ShellExecute(NULL,"open","www.baidu.com",NULL,NULL,SW_SHOWNORMAL);3.按钮的允许与禁止:m_Button1.EnableWindow(true);m_Button1.EnableWindow(false);转载 2013-04-21 11:35:14 · 1274 阅读 · 0 评论 -
C++垃圾回收器的实现(附auto_ptr 与CComPtr区别)
一、简介这是一个自己写C++垃圾自动回收器,用到的都是标准C++语法。采用了引用计数加mark-sweep的方法。在没有循环引用的情况下,引用计数可以保证垃圾实时得到回收;对于有循环引用的情况下,计数就不能回收了,这时就要用mark-sweep的方法。其实完全使用mark- sweep的方法也是可以的,但有了引用计数,可以回收大量的非循环引用垃圾,减少最后的mark-sweep时的工作量。转载 2016-07-07 14:01:09 · 475 阅读 · 0 评论