
c/c++2轮总结
文章平均质量分 76
晚起的鸟
哈哈哈
展开
-
两个类相互包含引用的问题--类前向声明
1、背景编程中遇到如下错误:使用不完全类型**以及**前向声明。查找相关资料后发现是类的前向声明(forward declaration)问题:在程序中声明一个类后,此类是一个不完全类型(incompete type),即已知此类是一个类型,但不知道包含哪些成员。不完全类型只能以有限方式使用,不能定义该类型的对象。不完全类型只能用于定义指向该类型的指针及引用,或者用于声原创 2015-06-01 15:22:40 · 1159 阅读 · 0 评论 -
c++ string总结
要想使用标准C++中string类,必须要包含#include // 注意是,不是,带.h的是C语言中的头文件using std::string;using std::wstring;或using namespace std;下面你就可以使用string/wstring了,它们两分别对应着char和wchar_t。string和wstring的用法是一样的,原创 2015-02-09 15:36:36 · 878 阅读 · 0 评论 -
epoll详解(转)
什么是epollepoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linux kernel 2.5.44),它几乎具备了之前所说的一切优点,被公认为Linux2.6下性能最好的多路I/O就绪通知方法。原创 2015-01-28 15:25:30 · 870 阅读 · 0 评论 -
c++的一些开源库(待补充修改)
C++开源库,欢迎补充。C++在“商业应用”方面,曾经是天下第一的开发语言,但这一桂冠已经被java抢走多年。因为当今商业应用程序类型,已经从桌面应用迅速转移成Web应 用。当Java横行天下之后,MS又突然发力,搞出C#语言,有大片的曾经的C++程序员,以为C++要就此沉沦,未料,这三年来,C++的生命力突然被 严重地增强了。主力原因就是开源的软件、基础软件(比如并发原生支持,比如A原创 2015-01-28 14:14:29 · 974 阅读 · 0 评论 -
3DsMax导出插件编写-(1)环境搭建
为3D开发人员,特别是3D引擎开发人员,经常会接触到各种三维模型的数据。虽然说3dsmax已经可以导出很多格式的模型,不过总是不一定合适自己用。所以总有一种想自己写一个导出插件,让3dmax导出自己想要的数据格式。这里为大家介绍一下怎样为3dmax写导出插件的第一步:怎样配置vs和maxSdk。这里你需要的东西有两个:1、一个完整版的3dsMax。2、一个Visual Stud原创 2015-01-19 11:53:45 · 4163 阅读 · 0 评论 -
c++拷贝构造函数、赋值运算符=重载、深拷贝与浅拷贝
关键词:构造函数,浅拷贝,深拷贝,堆栈(stack),堆heap,赋值运算符摘要: 在面向对象程序设计中,对象间的相互拷贝和赋值是经常进行的操作。 如果对象在申明的同时马上进行的初始化操作,则称之为拷贝运算。例如: class1 A("af"); class1 B=A; 此时其实际调用的是B(A)这样的浅拷贝操作。 如果对象在原创 2015-01-17 14:12:48 · 1337 阅读 · 0 评论 -
关于编码问题以及不同平台编码及string与编码的关系
说明:这里简要说明一下不同平台的编码不同,c语言中的char *与编码的关系这些问题,及对通常困扰的乱码问题做个总结一。编码二。ANSI、ascll、utf8、unicode等说明三。windows、linux平台的编码说明四。字符串与平台、编码的关系原创 2015-01-16 19:12:12 · 1811 阅读 · 0 评论 -
c/c++原子锁应用(跨平台)
前言:今天在修改amf库时发现两个函数,InterlockedIncrement()、InterlockedDecrement(),查资料知道这是关于原子锁的,而这是windows下的系统函数,那么对应的linux下也应该有此函数了......一.windows下的原子锁。。。。(待续)二.linux下的原子锁进化2.1网上先是找到了atomic_t ,atomic_inc原创 2015-01-10 17:44:18 · 2962 阅读 · 0 评论 -
typedef-------typedef void (*sighandler_t)(int)的区别
typedef void (*sighandler_t)(int);sighandler_t signal(int signum, sighandler_t handler);此处由于加了typedef自定义了一个新类型sighandler_t,所以第二行的函数原型看起来顺眼多了,形式跟int func(char c, int i)无异,但是如果看不懂typedef语句,这两句原创 2015-01-08 15:51:38 · 791 阅读 · 0 评论 -
c++模板
1.什么是模板假设现在我们完成这样的函数,给定两个数x和y求式子x^2 + y^2 + x * y的值 .考虑到x和y可能是 int , float 或者double类型,那么我们就要完成三个函数:int fun(int x,int y);float fun(float x,float y);double fun(double x,double y);并且每个fun函数内部所要原创 2014-12-25 17:07:14 · 698 阅读 · 0 评论 -
c++运算符重载2
上一节主要讲解了C++里运算符重载函数,在看了单目运算符(++)重载的示例后,也许有些朋友会问这样的问题。++自增运算符在C或C++中既可以放在操作数之前,也可以放在操作数之后,但是前置和后置的作用又是完全不同的(q前置运算符:先加1,再赋值;后置运算符:先赋值,再加1)。那么要怎么重载它们,才可以有效的区分开来呢?今天我就来说说C++中是怎么处理前置运算符和后置运算符的重载的。以及介绍一下插入运原创 2014-12-18 17:05:40 · 784 阅读 · 0 评论 -
c++运算符重载1
在前一节中曾提到过,C++中运行时的多态性主要是通过虚函数来实现的,而编译时的多态性是由函数重载和运算符重载来实现的。这一系列我将主要讲解C++中有关运算符重载方面的内容。在每一个系列讲解之前,都会有它的一些基础知识需要我们去理解。而运算符重载的基础就是运算符重载函数。所以今天主要讲的是运算符重载函数。 1.运算符重载是对已有的运算符赋予多重含义,使同一个运算符作用域不同类型的数据导致不同行原创 2014-12-18 16:40:19 · 767 阅读 · 0 评论 -
fread与read的区别(文件io补充)
这里有一个我们经常提出的问题就是fread,read的区别。(当然这两个分别代表了操作文件系统的两套不同的函数,包括open,read, write, seek 等)。一.他们的区别就是一个(read)是UNIX 中的系统调用,是类UNIX系统,提供给程序员操作文件的接口(要不然你如何操作文件?);而另外一个则是C语言提供的读取文件的函数库,自然这个函数库(ANSI)的实现是以对应的系统调用为原创 2014-10-09 16:01:21 · 3103 阅读 · 1 评论 -
1.C与c++文件IO
一. C与c++文件IO1.1文件类型:ASCII文件和二进制文件首先我不保证文件类型只有这两种。但理解这两种文件对学习文件IO操作非常重要。1.1.1ASCII文件ASCII文件也就是文本文件,每个字节存放一个ASCII代码,代表一个字符。可以使用任何编辑器打开,如记事本或者UE等,打开就是你能看懂的字符。比如姓名"richard"就会存储为7个字节,每个字节分别为对应字母的AS原创 2014-10-09 15:29:39 · 1437 阅读 · 0 评论