C++
文章平均质量分 65
ToSoftWare
这个作者很懒,什么都没留下…
展开
-
没有搞懂的关键字 volatile
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子: 1). 并行设转载 2011-10-15 16:50:31 · 488 阅读 · 0 评论 -
C++中的this指针
http://bluefish.blog.51cto.com 有下面的一个简单的类:class CNullPointCall{public: static void Test1(); void Test2(); void Te原创 2011-10-08 09:33:28 · 386 阅读 · 0 评论 -
析构函数声明为虚函数
Base *pb;inherit c;//inherit 是继承 Base的pb=&c;delete pb;时需要调用对象的析构函数,如果基类析构不是virtual型,会根据pb的定义类型调用相应类的析构函数,即调用即类析构,但如果你在派生类析构里有内存释放操作,转载 2011-10-08 16:21:48 · 1890 阅读 · 0 评论 -
虚函数表
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,R转载 2011-10-09 15:18:44 · 466 阅读 · 0 评论 -
c++基本概念
1. 类的声明与对象的定义 常用的方法是类的声明与对象的定义分开2.成员访问限定符private,public,protected的含义 private:只能被类的成员函数访问,类外不能被访问(友元除外) public:可以被类的成员函数访问,也可以原创 2010-11-20 11:17:00 · 623 阅读 · 0 评论 -
static的作用
C/C++语言中Static的作用详述[ 2009-4-15 15:50:00 | By: qqcandy ] C/C++中Static的作用详述在C语言中,static的字面意思很容易把我们转载 2011-10-08 10:36:28 · 648 阅读 · 0 评论 -
内存对齐2(比较清楚的讲解)——重要
也谈内存对齐 - [技术前沿]Tag:语言探索 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://bigwhite.blogbus.com/logs/1347304.html在最近的项目中,我们涉及到了“内存对齐”技术。对于大部分程序员来说,“内存对齐”对他们来说都应该是“透明的”。“内存对齐”应该是编译器的“管辖范围”。编译器为程序中的每个转载 2011-10-21 09:56:44 · 734 阅读 · 0 评论 -
内存对齐的问题1
typedef union u{ int a; char c[5];}un;typedef struct data{ int b;//0-3 un m;//4-11 double d;//12-19}sData;int main(void){ printf("%d\t%d\n",sizeof(un),sizeof(sData)转载 2011-10-20 16:33:12 · 575 阅读 · 0 评论 -
左值 右值 初始化与赋值 声明与定义
左值既能在赋值的左边,又能在右边。 右值只能在右边。 (++a 是左值 a++是右值);a+1:取变量a的内存中的值,然后相加b = a;把a内存中的值拷贝到b的内存中 初始化:创建变量并给它赋初始值。赋值:擦出对象的当前值并用新值替代。 int a(1024);//直接初始化int a = 1024;//复制初始化 对于内置类型,二者没有区别。对类对象初转载 2011-10-21 15:14:08 · 1035 阅读 · 0 评论 -
C/C++编译过程
C/C++语言很多人都比较熟悉,这基本上是每位大学生必学的一门编程语言,通常还都是作为程序设计入门语言学的,并且课程大多安排在大一。刚上大学,孩子们还都很乖,学习也比较认真,用心。所以,C/C++语言掌握地也都不错,不用说编译程序,就是写个上几百行的程序都不在话下,但是他们真的知道C/C++程序编译的步骤么?我想很多人都不甚清楚,如果他接下来学过“编译原理”,也许能说个大概。VC的“舒适”转载 2012-01-30 16:39:35 · 1377 阅读 · 1 评论 -
线程函数有关的问题
创建线程时,线程函数如果要设置成类的成员函数,则必须是静态成员函数,在此函数中不能使用非静态成员变量,如果要使用非静态成员变量,则一种比较适合线程的方法是:建立线程的时候把this作为CreateThread的一个参数(即第4个参数,就是那个LPVOID型的),然后线程里就对应pParam,例如: static UINT ThreadProc(LPVOID pParam) {转载 2012-05-13 15:24:59 · 601 阅读 · 0 评论 -
OnCreate VS OnInitialUpDate ^~^ OnPaint VS OnDraw
OnCreate VS OnInitialUpDate ^~^ OnPaint VS OnDraw大家通常会将接收命令行的语句放在哪个事件里呢?ONCREATE还是ONSHOW还是ONACTIVE还是ONPAINT ?视需要而定,ONCREATE只发生一次,ONSHOW/ONACTIVE/ONPAINT 是多次发生的,ONSHOW是ONCREATE之后显示窗体时发生转载 2012-10-24 11:46:34 · 1035 阅读 · 0 评论 -
linux多线程
首页 > 编程技术 > 其它 > 正文Linux下的多线程编程本文出自:http://www.china-pub.com 作者: 姚继锋 (2001-08-11 09:05:00)1 引言 线程(thread)转载 2011-10-15 14:40:48 · 697 阅读 · 0 评论 -
如果 C++程序要调用已经被编译后的C 函数,该怎么办?extern "C"
假设某个C 函数的声明如下:void foo(int x, int y);该函数被C 编译器编译后在库中的名字为_foo,而C++编译器则会产生像_foo_int_int之类的名字用来支持函数重载和类型安全连接。由于编译后的名字不同,C++程序不能直接调用C 函数转载 2011-10-14 11:12:36 · 532 阅读 · 0 评论 -
linux 动态库
1. 静态库和动态库的基本概念静态库,是在可执行程序连接时就已经加入到执行码中,在物理上成为执行程序的一部分;使用静态库编译的程序运行时无需该库文件支持,哪里都可以用,但是生成的可执行文件较大。动态库,是在可执行程序启动时加载到执行程序中,可以被多个可执行程序共享使用。使用动转载 2011-10-14 14:51:42 · 608 阅读 · 0 评论 -
变量的内存分配:内存对齐
数据结构还有变量等等都需要占有内存,在很多系统中,它都要求内存分配的时候要对齐,这样做的好处就是可以提高访问内存的速度。#include 2 using namespace std; 3 4 struct X1 5 { 6 int i;//4个字节 7 char c1;//1个字节 8 char c2;//1个字节 9 };10 11 struct X212 {13 char c1;//1个字节14 int i;//4个字节15 char c2;//1个字节16 };17 18原创 2010-11-08 11:19:00 · 3811 阅读 · 0 评论 -
变量的内存分配
1.内存的分配方式 (1)从静态存储区域分配,内存在程序编译的时候已经分配好,这块内存在程序的整个运行期间都存在。如全局变量,static变量(2) 从栈上创建。函数局部变量的存储单元可以在栈上创建。函数调用时自动分配,调用结束时这些内存单元被自动释放。栈内存分配运算内置于处理器的指令集中,效率高,但内存容量有限。(3)从堆上分配,亦称为动态存储区,molloc和new申请任意多少的内存,free和delete释放内存。2.常见内存错误(1)内存尚未分配成功。 解决办法:在使用之前检查指针是否原创 2010-11-12 16:46:00 · 887 阅读 · 0 评论 -
关于野指针
<br />野指针: <br />“野指针”不是NULL指针,是指向“垃圾”内存的指针。人们一般不会错用NULL指针,因为用if语句很容易判断。但是“野指针”是很危险的,if语句对它不起作用。 “野指针”的成因主要有两种: <br />1).指针变量没有被初始化。任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的<br />2).指针p被free或者delete之后,没有置为NULL,让人误以为p是个合法的指针。 <br />3).指针操作超越了变量的作用域范围原创 2010-11-13 10:48:00 · 669 阅读 · 0 评论 -
运算符重载
可以是成员函数,也可以是友元函数,还可以是非成员函数和非友元函数(即普通的函数,这种情况用的比较少) 成员函数: 通过this指针访问本类的数据成员 要求运算符左侧的参数必须是类对象,并且与运算符函数的类型相同 重载流插入运算符>必须用友元函数的原因:原创 2011-10-11 16:21:40 · 517 阅读 · 0 评论 -
C/C++中预编译#,##,#error作用
C/C++中预编译#,##,#error作用 2008-05-05 18:39:07| 分类: 计算机编程 | 标签: |字号大中小 订阅 .#是生成字符串: #define a(x) #x a(bc) => "bc"##是连接: #define a(x) abc##x a(12转载 2011-10-12 15:56:00 · 980 阅读 · 0 评论 -
没有搞懂的关键字 4类cast(类型转换)
C++ 引入了 const_cast, reinterpret_cast 之类的新的显式类型转换方式,不仅大多数 C 程序员觉得不是很习惯,就连某些有经验的C++ 程序员都会在一些细节上犯错。诚然,既然我们可以简单的写出:int i = (int)p;// p is a po转载 2011-10-15 14:59:18 · 641 阅读 · 0 评论 -
ListCtrl 选中某项
void CWndSendDataCProView::OnItemchanged(NMHDR* pNMHDR, LRESULT* pResult) {NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;CListCtrl &listCtrl = GetListCtrl(); CString strName = "";CStr转载 2012-10-25 16:09:20 · 3365 阅读 · 0 评论