![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 78
hgy2011
这个作者很懒,什么都没留下…
展开
-
【实用】visual C++中最常用的类与API函数
【实用】visual C++中最常用的类与API函数这篇文章能让初学者快速了解visual C++ MFC中常见的核心的类与函数,虽然全部看下来有点枯燥,但对初学者快速了解MFC的框架结构很有好处。常用类CArchive类:用于二进制保存档案 CBitmap类:封装Windows的图形设备接口(GDI)位图 CBrush类:封装图转载 2012-05-28 01:06:37 · 573 阅读 · 0 评论 -
C++ 模板
1. 模板的概念。我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。//函数1.int max(int x,int y);{return(x>y)?x:y ;}//函数2.转载 2012-12-23 20:42:17 · 351 阅读 · 0 评论 -
C++中string
C++中string是标准库中一种容器,相当于保存元素类型为char的vector容器(自己理解),这个类提供了相当丰富的函数来完成对字符串操作,以及与C风格字符串之间转换,下面是对string一些总结 一,C语言的字符串在C语言里,对字符串的处理一项都是一件比较痛苦的事情,因为通常在实现字符串的操作的时候都会用到最不容易驾驭的类型——指针。比如下面这个例子:转载 2012-12-23 20:40:11 · 411 阅读 · 0 评论 -
嵌入式C/C++接口设计
嵌入式C/C++接口设计自己总结的一些经验,做个笔记。首先需要分析本模块的功能,书写书IF式样书。使用#ifndef #define #endif 避免重复包含。尽量不要依赖不可移植的语言原始类型。有限参数通过枚举定义,方便测试。对于本模块的各种成功和失败有统一的错误返回码。注意函数接口是设计为C++类型还是C类型。设计的每个函数要功能单一,明确,完备和简单,让使用者一看就会使原创 2013-03-03 14:59:26 · 725 阅读 · 0 评论 -
c++常用算法
1.河内之塔说明河内之塔(Towers of Hanoi)是法国人M.Claus(Lucas)于1883年从泰国带至法国的,河内为越战时北越的首都,即现在的胡志明市;1883年法国数学家Edouard Lucas曾提及这个故事,据说创世纪时Benares有一座波罗教塔,是由三支钻石棒(Pag)所支撑,开始时神在第一根棒上放置64个由上至下依由小至大排列的金盘转载 2013-03-03 23:59:20 · 848 阅读 · 0 评论 -
C++_运算符重载
什么是运算符的重载? 运算符与类结合,产生新的含义。 为什么要引入运算符重载? 作用:为了实现类的多态性(多态是指一个函数名有多种含义)怎么实现运算符的重载?方式:类的成员函数 或 友元函数(类外的普通函数)规则:不能重载的运算符有 . 和 .* 和 ?: 和 :: 和 sizeof友元函数和成员函数的使用转载 2013-03-04 00:18:26 · 428 阅读 · 0 评论 -
C++虚函数与虚函数表
C++虚函数与虚函数表多态性可分为两类:静态多态和动态多态。函数重载和运算符重载实现的多态属于静态多态,动态多态性是通过虚函数实现的。每个含有虚函数的类有一张虚函数表(vtbl),表中每一项是一个虚函数的地址, 也就是说,虚函数表的每一项是一个虚函数的指针。没有虚函数的C++类,是不会有虚函数表的。两张图: 简单转载 2013-03-04 19:53:26 · 435 阅读 · 0 评论 -
常量指针和指针常量的区别
常量指针 和 指针常量 的区别指向常量的指针 = 常量指针const int *p //常量指针int const *p //常量指针//const的位置在指针声明运算符*的左侧指针值不变的量 = 指针常量int* const p //指针常量//const的位置在指针声明运算符*的右侧指向常量的指针常量const原创 2013-03-04 15:15:39 · 573 阅读 · 1 评论 -
大数相加
问题描述:实现A+B=C 其中A、B位数超过100位算法思想:大数使用字符串存储,每一个单元存储操作数的每一位,之后执行位相加。基本思路:字符串反转、字符变数字、位运算、反序输出C语言代码:[cpp] view plaincopyprint?#include #include #define Max 101转载 2013-03-04 20:01:47 · 484 阅读 · 0 评论 -
类模板
这一小节专门介绍类模板,先看一个简单的例子:[cpp] view plaincopytemplate class Type> class Test { public: Test(Type val):value(val){} void set(const Type &val){value = val;}转载 2013-03-04 20:03:17 · 816 阅读 · 0 评论 -
从汇编层面深度剖析C++虚函数
虚函数是C++语言实现运行时多态的唯一手段,因此掌握C++虚函数也成为C++程序员是否合格的试金石。csdn网友所发的一篇博文《VC虚函数布局引发的问题》 从汇编角度分析了对象虚函数表的构,以及C++指针或者引用是如何利用这个表来实现运行时多态。诚然,C++虚函数的结构会因编译器不同而异,但所使用的原理是一样的。为此,本文使用linux平台下的g++编译器,试图从汇编的层面转载 2013-02-27 23:48:15 · 361 阅读 · 0 评论 -
c++ const 总结
C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助。Const 是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。一、Const作用 载自 : http://blog.csdn.net/Eric_Jo/article/d转载 2013-03-03 14:38:46 · 392 阅读 · 0 评论 -
面向对象的设计原则-类设计原则
在面向对象设计中,如何通过很小的设计改变就可以应对设计需求的变化,这是令设计者极为关注的问题。为此不少OO先驱提出了很多有关面向对象的设计原则用于指导OO的设计和开发。下面是几条与类设计相关的设计原则。1. 开闭原则(the Open Closed Principle OCP)一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的。因此在进行面向对象设计时要尽量考虑接口封装机制转载 2013-03-03 14:42:21 · 405 阅读 · 0 评论 -
开源图形库 c语言-图形图像库 集合
Google三维API O3D O3D 是一个开源的 Web API 用来在浏览器上创建界面丰富的交互式的 3D 应用程序。这是一种基于网页的可控3D标准。此格式期望真正的基于浏览器,独立于操作系统之外,并且支持主流的3D显卡,这样就可以在网页中实现效果逼真的3D动画。在线演示:http://o3... 更多O3D信息 最新新闻: 谷歌联手Mozilla基金开发3D互联网转载 2013-04-09 09:58:31 · 12736 阅读 · 0 评论 -
DBUS基础知识
DBUS基础知识1. 进程间使用D-Bus通信D-Bus是一种高级的进程间通信机制,它由freedesktop.org项目提供,使用GPL许可证发行。D-Bus最主要的用途是在Linux桌面环境为进程提供通信,同时能将Linux桌面环境和Linux内核事件作为消息传递到进程。D-Bus的主要概率为总线,注册后的进程可通过总线接收或传递消息,进程也可注册后等待内核事件响应,例如等待转载 2012-10-29 23:18:05 · 579 阅读 · 0 评论 -
CString类型
CString类型CString 是一种很有用的数据类型。它们很大程度上简化了MFC中的许多操作,使得MFC在做字符串操作的时候方便了很多。不管怎样,使用CString有很多特殊的技巧,特别是对于纯C背景下走出来的程序员来说有点难以学习。前言1、CString 对象的连接2、格式化字符串3、转化为int 型4、同char* 类型转化5、转化BSTR 型6原创 2012-05-22 18:45:05 · 749 阅读 · 0 评论 -
Win32数据类型
学习过C语言的童鞋,应当对C语言数据类型非常熟悉,但C语言的数据类型有如下几个缺陷:数据类型平台相关,在不同平台上,同一个数据类型可能占用不同的空间大小。典型的,在16位系统上,int类型和short int类型长度相同,但在32位平台上,则和long int类型长度相同;数据类型过于单一,例如在表现数值和布尔这两种情况时,虽然它们都是32位长度,但分开表达显然更加方便和直观;平台差异,例转载 2012-05-20 16:02:45 · 528 阅读 · 0 评论 -
C++中智能指针的设计和使用
C++中智能指针的设计和使用 智能指针(smart pointer)是存储指向动态分配(堆)对象指针的类,用于生存期控制,能够确保自动正确的销毁动态分配的对象,防止内存泄露。它的一种通用实现技术是使用引用计数(reference count)。智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个对象共享同一指针。每次创建类的新对象时,初始化指针并将引用计数置为1;当对象作为另一转载 2012-05-28 00:59:01 · 549 阅读 · 0 评论 -
winsocket
般来说 碰到的第一个结构体是 WSADATA [cpp] view plaincopy#define WSADESCRIPTION_LEN 256 #define WSASYS_STATUS_LEN 128 typedef struct WSAData { WORD转载 2012-05-29 15:14:23 · 534 阅读 · 0 评论 -
交叉编译器建立过程
交叉编译器建立过程 准备工作下载一下源码包:可以到ftp://ftp.gnu.org 下载源码包binutils-2.17.tar.gz gcc-3.4.6.tar.gz glibc-2.3.6.tar.gz glibc-linuxthreads-2.3.6.tar.gz 或者到ftp://sourceware.org/pub/下载。将源码包放入/home/zht/cross-转载 2012-05-30 00:57:22 · 1333 阅读 · 0 评论 -
GCC的使用
1984年,Richard Stallman发起了自由软件运动,GNU (Gnu's Not Unix)项目应运而生,3年后,最初版的GCC横空出世,成为第一款可移植、可优化、支持ANSI C的开源C编译器。GCC最初的全名是GNU C Compiler,之后,随着GCC支持的语言越来越多,它的名称变成了GNU Compiler Collection。这里介绍的gcc是GCC的前端,C编译转载 2012-05-30 01:01:07 · 475 阅读 · 0 评论 -
WinSocket API
WinSocket API —— TCP\IP连接要进行网络通信编程,就要用到socket(套接字)。套接字代表一个通信端口,有地址,有端口号,可连接(按类型),可收,可发。要进行socket编程,要为工程导入库文件,添加头文件,并在程序里加载套接字库。#include #pragma comment(lib, "ws2_32.lib") //2.0版本#include转载 2012-05-30 00:53:27 · 1867 阅读 · 0 评论 -
字节、字节序、内存对齐 与 跨机器、网络传输、字符操作
无符号单字节 byte ,数据上表示是0x10 ,2位。◆ 多字节基本类型,涉及到字节序little-endian和big-endian问题。(0x 01 02 0A 或 0x 0A 02 01) 主机字节序:由CPU确定多字节类型数据在内存中的存放顺序,我们用的IntelCPU是little-endian。通常这是机器内部事物,但如果涉及到网络通信就不是了。 JAVA转载 2012-05-30 01:18:10 · 945 阅读 · 0 评论 -
Windows Sockets:字节排序
Windows Sockets:字节排序本文以及另外两篇相关文章解释 Windows Sockets 编程方面的一些问题。本文介绍字节排序。其他问题在文章Windows Sockets:阻塞和 Windows Sockets:转换字符串中介绍。如果使用 CAsyncSocket 类或从其派生,则您需要自己管理这些问题。如果您使用 CSocket 类或从其派生,则由 MFC 管理转载 2012-05-30 01:10:40 · 365 阅读 · 0 评论 -
网路编程技术笔记
WinINet1.关于WinINetWinINet不是给服务端用的,服务端用Microsoft Windows HTTP Services (WinHTTP)WinINet抽象了Gopher,FTP,HTTP协议的一些细节。2.HINTERNET 句柄WinINet函数创建、使用的句柄都是HINTERNET类型的,这种类型的句柄无法被转换成其 它类型的句原创 2012-05-30 00:49:36 · 1499 阅读 · 2 评论 -
WinSocket API封装
MFC提供了两个类CAsyncSocket和CSocket来封装WinSock API,这给程序员提供了一个更简单的网络编程接口。CAsyncSocket在较低层次上封装了WinSock API,缺省情况下,使用该类创建的socket是非阻塞的socket,所有操作都会立即返回,如果没有得到结果,返回WSAEWOULDBLOCK,表示是一个阻塞操作。CSocket建立在CAsync转载 2012-05-30 00:54:44 · 646 阅读 · 0 评论 -
引用的用法
引用的用法转自http://blog.csdn.net/sandyqy/article/details/3327867 最近看书,看到了引用,对其用法不是很了解。从各处汇总了一些知识,如下: 什么是引用引用是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符&引用名=目标变量名;【例1】:int aint &ra=a;转载 2012-05-18 10:10:37 · 679 阅读 · 0 评论 -
C/C++变量在内存中的分布
C/C++变量在内存中的分布在笔试时经常考到,虽然简单,但也容易忘记,因此在这作个总结,以加深印象。先写一个测试程序:[cpp] view plaincopy#include #include int g_i = 100; int g_j = 200; int g_k, g_h; int main()转载 2012-05-18 21:23:26 · 338 阅读 · 0 评论 -
C++ 类的静态成员详细讲解
C++ 类的静态成员详细讲解在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。静态成员的定义或声明要加个关键static。静态成员可以通过双冒号来使用即::。 在C++中类的静态成员变量和静态成员函数是个容转载 2012-05-18 21:39:04 · 594 阅读 · 0 评论 -
全面整理的C++面试题
全面整理的C++面试题1.是不是一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态?virtual修饰符会被隐形继承的。private 也被集成,只事派生类没有访问权限而已virtual可加可不加子类的空间里有父类的所有变量(static除外)同一个函数只存在一个实体(inline除外)转载 2012-05-19 17:49:23 · 556 阅读 · 0 评论 -
冒泡排序C++模板实现
冒泡排序C++模板实现#include #include using namespace std;//冒泡排序template void BubSort(T *begin, T *end){ T *pi, *pj; for (pi = end; pi > begin; pi--) for (pj = begin + 1; pj < pi; pj++) if (原创 2013-10-10 16:34:18 · 932 阅读 · 0 评论