C++
public
喜欢网游
展开
-
public、protected和private继承
网上找了很多关于c++中这三者在继承方面的文章,貌似都不够全面。将几篇我觉得不错的文章整合了一下,方便大家查阅。 首先贴一个转载比较多的帖子:http://blog.csdn.net/wuliming_sc/archive/2009/01/18/3827743.aspx 在C++中继承主要有三种关系:public、protected和private原创 2009-11-25 10:12:00 · 594 阅读 · 0 评论 -
C++ 数组参数
在 C++中,数组永远不会按值传递,它是传递第一个元素,准确地说是第 0个 的指针。例如,如下声明 :void putValues( int[ 10 ] );被编译器视为 void putValues( int* );数组的长度与参数声明无关,因此,下列三个声明是等价的: // 三个等价的 putValues()声明void putValues( in转载 2012-10-24 09:35:14 · 770 阅读 · 0 评论 -
__attribute__详解
GNU C的一大特色就是__attribute__机制。__attribute__可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。__attribute__书写特征是:__attribute__前后都有两个下划线,并切后面会紧跟一对原括弧,括弧里面是相应的__attribute__参数。转载 2011-10-26 11:03:41 · 647 阅读 · 0 评论 -
gcc中include文件的搜索路径
这是一个不复杂的问题;但是网上很多回答都不全面;偶找了一个比较全面的(测试过):引用http://blog.csdn.net/fjb2080/archive/2010/01/23/5247494.aspx#include有两种形式,例如如下:#include #include "userhead.h"用尖括号表示的是包含系统的头文件,用双引号包含的是用户自己的头文件转载 2011-10-20 10:39:22 · 1528 阅读 · 0 评论 -
字节对齐算法
字节对齐是在分配内存时需要考虑的问题,两个小算法:(1)最容易想到的算法:unsigned int calc_align(unsigned int n,unsigned align){ if ( n / align * align == n)转载 2011-08-12 10:49:36 · 619 阅读 · 0 评论 -
VSS 6.0 转
<br />VSS6.0版:选中项目树的节点,然后点右键选择“Create Project”或者工具栏上的第一个(也许你的版本不是第一个)按钮“Create Project”或者菜单“File”下的“Create Project”可以在选中的节点下创建一个新项目(看起来就是创建一个子目录,事实上也没什么差别),需要输入的是项目的名字,支持中文,有兴趣的话顺便把注释也填上,省得以后忘了这个项目是干什么的。<br />很多时候可以通过添加一个目录以及目录下的所有内容来创建项目。选择“Add Files”命令可以原创 2011-04-15 08:47:00 · 1036 阅读 · 0 评论 -
数组,结构体初始化 {0} (转载)
<br />一直以为 int a[256]={0};是把a的所有元素初始化为0,int a[256]={1};是把a所有的元素初始化为1.<br />调试的时查看内存发现不是那么一回事,翻了一下《The C++ Programming Language》总算有定论。PDF的竟然不然复制,就把它这章翻译了,如下<br />5.2.1 数组初始化<br />数组可以用一个列值来初始化,例如<br /> int v1[] ={1,2,3,4};<br /> char v2[]=原创 2011-05-21 10:57:00 · 24807 阅读 · 5 评论 -
C++数组参数应用方式探讨(转)
<br />对于经验丰富的编程人员来说,C++编程语言应该是他们经常使用于程序开发的一种实用性语言。那么,在C++中,C++数组参数永远不会按值传递。它是传递第一个元素(准确地说是第0个)的指针。<br />例如,如下声明:void putValues(int[10]); <br />被编译器视为:void putValues(int*); <br />C++数组参数的长度与参数声明无关。因此,下列三个声明是等价的:void putValues(int*); void putValues(int[]);原创 2011-01-29 13:01:00 · 620 阅读 · 0 评论 -
c++ static 关键字
<br />C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。 <br />一、面向过程设计中的static<br />1、静态全局变量<br />在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下: //Example 1#include <iostream.h>void fn();static int n; /原创 2010-07-07 08:55:00 · 1804 阅读 · 0 评论 -
const char*, char const*, char*const的区别
const char*, char const*, char*const的区别问题几乎是C++面试中每次都会有的题目。 这个知识易混点之前是看过了,今天做Linux上写GTK程序时又出现个Warning,发散一下又想到这个问题,于是翻起来重嚼一下。事实上这个概念谁都有只是三种声明方式非常相似:Bjarne在他的The C++ Programming Language里面给出过一个助记的方法原创 2009-12-05 09:32:00 · 512 阅读 · 0 评论 -
const_cast dynamic_cast reinterpret_cast static_cast用法
const_cast 用法:const_cast (expression) 该运算符用来修改类型的const或volatile属性。除了const 或volatile修饰之外, type_id和expression的类型是一样的。 常量指针被转化成非常量指针,并且仍然指向原来的对象; 常量引用被转换成非常量引用,并且仍然指向原来的对象;常量对象被转换成非常量对象。 Voiatile和原创 2009-12-05 09:45:00 · 1691 阅读 · 1 评论 -
一种Windows下线程同步的实现方法
Windows下的多线程与线程同步概述多任务是一个操作系统可以同时运行多个程序的能力。基本上,操作系统使用一个硬件时钟为同时运行的每个进程分配“时间片”。如果时间片足够小,并且机器也没有由于太多的程序而超负荷,那么在用户看来,所有的这些程序似乎在同试运行着。多线程是在一个程序内部实现多任务的能力。程序可以把它自己分隔为单独的执行“线程”,这些线程似乎也同时在运行[1]。[g1] 多线原创 2009-11-25 10:23:00 · 628 阅读 · 0 评论 -
C++信号量 Semaphore 和 MFC中的 CSemaphore类使用
信号量(Semaphore)内核对象对线程的同步方式与前面几种方法不同,它允许多个线程在同一时刻访问同一资源,但是需要限制在同一时刻访问此资源的最大线程数目。在用CreateSemaphore()创建信号量时即要同时指出允许的最大资源计数和当前可用资源计数。一般是将当前可用资源计数设置为最大资源计数,每增加一个线程对共享资源的访问,当前可用资源计数就会减1,只要当前可用资源计数是大于0的原创 2009-11-25 10:23:00 · 1174 阅读 · 0 评论 -
__cdecl,__fastcall, __stdcall 什么区别?
__cdecl,__fastcall, __stdcall 什么区别?请祥细点。 --------------------------------------------------------------- 函数参数入栈的方式 --------------------------------------------------------------- 在函数调用过程中,会使用原创 2009-11-25 10:01:00 · 428 阅读 · 0 评论 -
彻底了解指针数组,数组指针,以及函数指针
一 :关于指针和堆的内存分配 先来介绍一下指针 : 指针一种类型,理论上来说它包含其他变量的地址,因此有的书上也叫它:地址变量。既然指针是一个类型,是类型就有大小,在达内的服务器上或者普通的PC机上,都是4个字节大小,里边只是存储了一个变量的地址而已。不管什么类型的指针,char * ,int * ,int (*) ,string * ,float * ,都是说明了本指针所指向的地址空间是什原创 2009-11-25 10:28:00 · 1783 阅读 · 1 评论 -
STL的6大组件:容器、类属算法、迭代器、函数对象、适配器、分配器。
STL知识点。梗概。 ------《标准模板库自修教程与参考手册 STL进行C++编程》------STL的6大组件:容器、类属算法、迭代器、函数对象、适配器、分配器。---------------------------------------------------------------------------------------------迭代器:原创 2009-11-25 10:26:00 · 936 阅读 · 0 评论 -
C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法
有些成员变量的数据类型比较特别,它们的初始化方式也和普通数据类型的成员变量有所不同。这些特殊的类型的成员变量包括:a.引用b.常量c.静态d.静态常量(整型)e.静态常量(非整型) 常量和引用,必须通过参数列表进行初始化。 静态成员变量的初始化也颇有点特别,是在类外初始化且不能再带有static关键字,其本质见文末。参考下面的代码以及其中注释:#in转载 2012-10-24 09:33:39 · 1794 阅读 · 0 评论