c/c++
文章平均质量分 64
lijia6745
这个作者很懒,什么都没留下…
展开
-
字节对齐与补齐
首先我们先看看下面的C语言的结构体:[cpp] view plaincopytypedef struct MemAlign { int a; char b[3]; int c; }MemAlign; 以上这个结构体占用内存多少空间呢?也许你会说,这个简单,计算每个类型转载 2014-03-24 22:33:25 · 1796 阅读 · 0 评论 -
c++ 类型转换
const_cast,移除const属性。 static_cast,父类->基类 普通类型之间的转换。 dynamic_cast,动态类型转换。如子类和父类之间的多态类型转换。 reinterpreter_cast,低级转换 执行取决编译器 不便移植 如一个pointer to int。 4种类型转换的格式,如: const_cast 去掉类型的原创 2014-03-12 23:53:16 · 463 阅读 · 0 评论 -
标准c++用法总结
http://www.cnblogs.com/xFreedom/archive/2011/05/16/2048037.html相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用。但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯定的。也许有人会说,即使不用MFC框架,也可以想办法使用MFC转载 2014-02-18 21:59:05 · 527 阅读 · 0 评论 -
auto_ptr
头文件 #includenamespace std::不多说先看源码(RTFR)template class auto_ptr { // wrap an object pointer to ensure destructionpublic: typedef auto_ptr _Myt; typedef _Ty element_type; explicit原创 2014-02-26 20:15:37 · 552 阅读 · 0 评论 -
float
在C++里,实数(float)是用四个字节即三十二位二进制位来存储的。其中有1位符号位,8位指数位和23位有效数字位。实际上有效数字位是24位,因为第一位有效数字总是“1”,不必存储。 有效数字位是一个二进制纯小数。8位指数位中第一位是符号位,这符号位和一般的符号位不同,它用“1”代表正,用”0“代表负。整个实数的符号位用“1”代表负,“0”代表正。 在这存转载 2014-02-24 22:48:10 · 635 阅读 · 1 评论 -
about std::swap
template inline void swap(_Ty& _Left, _Ty& _Right) { // exchange values stored at _Left and _Right _Ty _Tmp = _Move(_Left); _Left = _Move(_Right); _Right = _Move(_Tmp); }我看了这个是从vs2010中看到的实现代原创 2014-02-24 20:47:33 · 641 阅读 · 0 评论 -
析构函数抛出异常
看了下Effective C++关于析构函数抛出异常的一些描述。然后自己网上查了下。发现一篇说的不错的。转了。具体出处不知道是哪里。转载 2014-02-23 21:07:23 · 650 阅读 · 0 评论 -
一个空类的二三事
EmptyClass{};之前看书说这看起来什么都没有,其实编译器还是会为你做点事情的,像给它构造\析构函数什么的。饿 这是必须滴!其他的呢??int main(){ EmptyCls eptCls1; EmptyCls eptCls2; EmptyCls* ptrEptCls3 = &eptCls1; //operator & EmptyCls eptCls6 = *pt原创 2014-02-22 09:03:48 · 523 阅读 · 0 评论 -
C++ extern使用
首先我所理解的extern是用于将全局变量局部化。在程序链接期间,链接器根据你的变量或者函数首先要去他定义的地方,如果在当前这个编译单元内没有找到。那么就肯定会报错,不管你是否有进行声明什么的。 但是如果你有对这个函数或变量前面加一个extern声明,那么链接器就会去别的地方寻找它定义的地方了。还有就是就算声明使用了extern,但是当前的编译单元有对这个函数或者变量进行定义,那么就不需要要在去原创 2014-02-20 22:20:39 · 494 阅读 · 0 评论 -
C++访问MySql 转载 还有测
//下面的代码是一个实现C++连接MYSQL数据库的很好的例子//这里用了建表,插入,检索,删表等常用功能//我用VC++6.0生成,已经成功连接了。//在VC++6.0中要想把做一下两步准备工作才可以。//(1)Tools->Options->Directories->Include files中添加C:\Program Files\MySQL\MySQL Server 6.0\incl转载 2013-05-08 11:33:38 · 649 阅读 · 0 评论 -
Debug/XXX.pch' is not a precompiled header file created with this compiler
今天写用vs程序,发现有这个错误,也不知道什么原因,单步跟了下发现提示下面的问题 "Warning: Destroying non-NULL m_pMainWnd"。后来发现原来是把窗口中的菜单名改了导致的,像我用的是直接在窗口中设置菜单名,才会出现这样的问题。如果出现想这样的问题,可以检查程序中变量名是否一致。还有发现一般出现这个问题,选择的方案是删掉这个文件build下。要不就是r原创 2013-05-07 17:53:29 · 4171 阅读 · 0 评论 -
NVI
1.简介在标准C++库中我们可以看到这样的一个现象:6个公有虚函数,并且都是std::exception::what()和其重载。142个非公有虚函数。这样设计的目的何在呢,为什么“多此一举”的把虚函数设置为非公有呢?这就是NVI机制要求的:将虚函数声明为非公有,而将公有函数都声明为非虚——虚拟和公有选其一。2.机制分析程序员常常将基类中的虚转载 2014-03-24 21:21:57 · 609 阅读 · 0 评论