
C++ primer & C++ 基本
文章平均质量分 73
miao6664659
这个作者很懒,什么都没留下…
展开
-
C语言模拟C++的多态性
#include //定义2个类型意思一下enum ShapeType {CIRCLE, SQUARE};//虚函数表里的两个函数,calculate也是意思一下,无意义typedef void (*show)();typedef double (*calculate)(int arg);//虚函数表结构体typedef struct _VirtualFun{ show转载 2013-09-09 11:35:41 · 952 阅读 · 0 评论 -
关于typedef的用法总结
http://blog.youkuaiyun.com/wangqiulin123456/article/details/8284939r在C还是C++代码中,typedef都使用的很多,在C代码中尤其是多。typedef与#define有些相似,其实是不同的,特别是在一些复杂的用法上,看了网上一些C/C++的学习者的博客,其中有一篇关于typedef的总结还是很不错,由于总结的很好,我转载 2012-12-20 15:23:49 · 735 阅读 · 1 评论 -
C++面试题
http://zhedahht.blog.163.com/blog/static/254111742011299219769/问题(16):运行如下的C++代码,输出是什么?class A{public: virtual void Fun(int number = 10) { std::cout "A::Fun with number "转载 2012-12-19 19:34:00 · 658 阅读 · 0 评论 -
C++面试题100题之前50题
http://blog.youkuaiyun.com/hackbuteer1/article/details/79265921、以下程序的运行结果是() int main(void) { printf("%s , %5.3s\n","computer","computer"); return 0; } A、comput转载 2013-01-03 21:54:45 · 2821 阅读 · 0 评论 -
头文件互相包含的问题
http://blog.youkuaiyun.com/ddl007/article/details/4862395在C++中,关于CPP的头文件互相包含的问题很让人头疼,其实我们谁也不愿意弄的结构混乱,难以理解,但有时又是有必须的。 假定当前有两个头文件分别为 A.h 和 B.h,内容分别如下: A.h内容为: #ifndef _A_H_ #define转载 2012-12-18 21:08:49 · 746 阅读 · 0 评论 -
C++面试题3
http://zhedahht.blog.163.com/blog/static/2541117420111169592105/题目(12):运行下图中的C++代码,输出是什么?#include class A{private: int n1; int n2;public: A(): n2(0), n1(n2转载 2012-12-17 17:16:03 · 673 阅读 · 0 评论 -
位操作基础篇之位操作全面总结
http://blog.youkuaiyun.com/morewindows/article/details/7354571#cppTitle: 位操作基础篇之位操作全面总结Author: MoreWindowsE-mail: morewindows@126.comKeyWord: C/C++ 位操作 位操作技巧 判断奇偶 交换两数 变换符号 求绝对值 位转载 2012-12-28 21:39:48 · 651 阅读 · 0 评论 -
二维数组作函数参数以及返回值
http://blog.youkuaiyun.com/wanlizhengren/article/details/4580236需要将二维数组作为函数参数传递进函数里处理,处理完毕后要将二维数组作为函数返回值返回。函数是不能返回数组的,只能返回指针。代码可以这样写:typedef char(*aa)[10];aa sign(char signstr[][10]){ for(int i = 0;i转载 2012-12-13 19:05:38 · 1873 阅读 · 0 评论 -
C++面试 1
http://zhedahht.blog.163.com/blog/static/254111742011012111557832/写在前面的话:由于与C++语法相关的面试题,通常用很短的篇幅就能解释清楚,不适合写博客,因此本博客一直没有关注C++的语法题。近期发现篇幅短的C++题目刚好合适微博,于是开始在微博http://weibo.com/zhedahht和http://t.163.com转载 2012-12-06 10:21:24 · 524 阅读 · 0 评论 -
reinterpret_cast 和 static_cast
http://blog.youkuaiyun.com/lambol_8309/article/details/4534338static_cast用法:static_cast ( expression )该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法:①用于类层次结构中基类和子类之间指针或引用的转换。 进行上行转转载 2013-01-04 21:53:27 · 635 阅读 · 0 评论 -
const 修饰符在C++中的应用
我参考了 http://www.limou.net/?p=152空间的内容,也搜索了网上百度回答,和其他网友提供的知识。我还是加入了一些例子还试图说明const修饰符在C++中的一些应用。以供以后自己在忘记的时候能尽快回忆起来const的用法。 C++为什么要引入const修饰符?1. 大家知道,C++有个类型严格的编译系统,这使得C++程序的错误在编译阶段即可发现许多。转载 2012-01-15 17:25:58 · 804 阅读 · 0 评论 -
STL 中的iterator_traits与SGI专有的__type_traits在PJ中的使用
classShape{public: Shape() { cout"Shape" }};struct__true_type{};struct__false_type{};templateclass class_type>struct__type_traits{ typedef __true_t原创 2013-05-13 15:17:48 · 925 阅读 · 0 评论 -
各种库函数的实现
http://www.cnblogs.com/stoneJin/archive/2011/09/16/2179248.htmlstrcpy和memcpy的区别strcpy和memcpy都是标准C库函数,它们有下面的特点。strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。已知strcpy函数的原型是:char转载 2013-04-18 14:34:23 · 823 阅读 · 0 评论 -
TCP 三次握手 与四次挥别 以及各种状态的详细讲解
http://molewan.blog.51cto.com/287340/1145921、建立连接协议(三次握手)(1)客户端发送一个带SYN标志的TCP报文到服务器。这是三次握手过程中的报文1。(2) 服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和SYN标志。因此它表示对刚才客户端SYN报文的回应;同时又标志SYN给客户端,询问客户端是否准备好进行数转载 2013-04-17 21:43:00 · 1082 阅读 · 0 评论 -
C语言运算优先级 简单记就是:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符
优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左到右 ()圆括号(表达式)/函数名(形参表) .成员选择(对象)对象.成员名转载 2013-04-09 09:47:47 · 6385 阅读 · 0 评论 -
C++中的内存分布
转自http://bbs.fishc.com/home.php?mod=space&uid=9&do=blog&id=182在C/C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 堆,就是那些由new分配的内存转载 2013-03-21 09:21:15 · 667 阅读 · 0 评论 -
使用关键段和Event内核对象来同步
用关键段和event使得两个子线程交替输出1,2,3,4,5#include "Job.h"#include //#include "Thread.h"//#include "Synchronization.h"int g_t=0;HANDLE g_hThreadEvent1;CRITICAL_SECTION g_csThreadCode1;HANDLE event0;HAND转载 2013-01-11 20:15:36 · 632 阅读 · 0 评论 -
C++中的浅拷贝和深拷贝
http://blog.youkuaiyun.com/wangqiulin123456/article/details/8464082位拷贝拷贝的是地址(也叫浅拷贝),而值拷贝则拷贝的是内容(深拷贝)。深拷贝和浅拷贝可以简单理解为:如果一个类拥有资源,当这个类的对象发生复制过程的时候,资源重新分配,这个过程就是深拷贝,反之,没有重新分配资源,就是浅拷贝。 位拷贝,及"bitwise ass转载 2013-01-07 09:08:02 · 517 阅读 · 0 评论 -
大端模式和小端模式
http://blog.youkuaiyun.com/hackbuteer1/article/details/7722667在 各种计算机体系结构中,对于字节、字等的存储机制有所不同,因而引发了计算机 通信领 域中一个很重要的问题,即通信双方交流的信息单元(比特、字节、字、双字等等)应该以什么样的顺序进行传送。如果不达成一致的规则,通信双方将无法进行正 确的编/译码从而导致通信失败。目前在各种体系的计算机转载 2012-12-21 10:40:19 · 688 阅读 · 0 评论 -
微软面试100题之32 不能被继承的类
转载自:July http://blog.youkuaiyun.com/v_JULY_v/article/details/6126406 题目:用C++设计一个不能被继承的类。分析:这是Adobe公司2007年校园招聘的最新笔试题。这道题除了考察应聘者的C++基本功底外,还能考察反应能力,是一道很好的题目。在Java中定义了关键字final,被final修饰的类不能被继承。但在C++中没有f转载 2012-11-27 11:00:23 · 998 阅读 · 0 评论 -
秒杀多线程第九篇 经典线程同步总结,关键段 事件 互斥量 信号量
前面《秒杀多线程第四篇一个经典的多线程同步问题》提出了一个经典的多线程同步互斥问题,这个问题包括了主线程与子线程的同步,子线程间的互斥,是一道非常经典的多线程同步互斥问题范例,后面分别用了四篇《秒杀多线程第五篇经典线程同步关键段CS》《秒杀多线程第六篇经典线程同步事件Event》《秒杀多线程第七篇经典线程同步互斥量Mutex》《秒杀多线程第八篇经典线程同步信号量Semaphore》转载 2012-11-13 16:51:23 · 549 阅读 · 0 评论 -
秒杀多线程第七篇 经典线程同步问题 互斥量Mutex
http://blog.youkuaiyun.com/morewindows/article/details/7470936阅读本篇之前推荐阅读以下姊妹篇:《秒杀多线程第四篇一个经典的多线程同步问题》《秒杀多线程第五篇经典线程同步关键段CS》《秒杀多线程第六篇经典线程同步事件Event》前面介绍了关键段CS、事件Event在经典线程同步问题中的使用。本篇介绍用互斥量Mutex来解决这个转载 2012-11-09 09:12:04 · 1038 阅读 · 0 评论 -
浅谈C++的多态性 重载 覆盖 隐藏
重载,在一个类定义中,可以编写几个同名的方法,但是只要它们的签名参数列表不同,Java就会将它们看做唯一的方法。简单的说,一个类中的方法与另一个方法同名,但是参数表不同,这种方法称之为重载方法 (百度百科)严格来说,重载是编译时多态,即静态多态,根据不同类型函数编译时会产生不同的名字如int_foo和char_foo等等,以此来区别调用。故重载仍符合多态定义——通过单一标识支持不同特定行为的转载 2012-10-29 10:02:14 · 663 阅读 · 0 评论 -
new operator and operator new
1. new的执行过程:(1)通过operator new申请内存(2)使用placement new调用构造函数(简单类型忽略此步)(3)返回内存指针2. new和malloc的比较:(1)new失败时会调用new_handler处理函数,malloc不会,失败时返回NULL(2)new能通过placement new自动调用对象的构造函数,malloc不会(3)转载 2012-11-02 21:04:46 · 438 阅读 · 0 评论 -
STL容器里存放对象还是指针?
http://blog.youkuaiyun.com/weiqubo/article/details/7291129一.问题的引出:容器可以存放对象,可以存放指针,这里要谈的是两者的使用问题。就是什么时候存放对象更好,什么时候存放指针更好?二.问题的分析过程:1.首先说下stl容器的工作方式对于内建类型(int float char等),容器的工作方式是纯粹的位拷贝,这里没有什么需要多转载 2012-10-31 14:52:30 · 1593 阅读 · 0 评论 -
char str[]和char* str的区别
http://blog.youkuaiyun.com/hackbuteer1/article/details/6706562char* get_str(void){ char str[] = {"abcd"}; return str;}char str[] = {"abcd"};定义了一个局部字符数组,尽管是数组,但它是一个局部变量,返回它的地址肯定是一个已经释放了的空间的地址。转载 2012-10-29 20:18:58 · 639 阅读 · 0 评论 -
编程风格 程序员面试宝典 (2)
面试题1: We have two pieces of code, whichone do you prefer, and tell why.A. //a is a variable写法1: If(‘A’==a) a++;写法2: If(a==”A”) a++;B. 写法1: For(i=0;i {转载 2012-07-13 10:44:34 · 569 阅读 · 0 评论 -
类型转换 程序员面试宝典(3)
面试题1: 下面程序的结果是什么?Char foo(void){ Unsignedint a=6;Int b=-20;Char c;(a+b>6)?(c=1):(c=0);Return c;}解析: unsignedint 类型的数据与int类型的数据相运算之后,自动转化为unsigned int类型。(int类型比unsigned少了一个符号位)。转载 2012-07-13 10:45:47 · 997 阅读 · 0 评论 -
赋值语句 程序员面试宝典(1)
准备花三个月左右的时间把程序员宝典看一遍。面试例题1: Whatdoes the following program print?#include Using namespacestd; Int main(){ Intx=2,y,z; X*=(y=z=5);cout Z=3; X==(y=z);cout X=(y转载 2012-07-12 11:06:16 · 635 阅读 · 0 评论 -
STL容器中放入wchar_t*指针出错 Vector中放入wchar_t*
STL疑问#include class DistDrivers{public: virtual void GetLogicalDriveStrings()=0;public: int m_LogicalNum;//系统中逻辑驱动器的个数 std::vector m_LogicalNames;//系统中所有的驱动器字符串的信息 int m_DriveType;//驱动器类型 fl转载 2012-10-31 11:10:20 · 2197 阅读 · 0 评论 -
volatile关键字 百度百科
http://baike.baidu.com/view/608706.htm就象大家更熟悉的const一样,volatile是一个类型修饰符(type specifier)。它是被设计用来修饰被不同线程访问和修改的变量。如果没有volatile,基本上会导致这样的结果:要么无法编写多线程程序(这样就是不使用volatile的后果),要么编译器失去大量优化的机会(要么就是相当于永远使用volat转载 2012-11-07 10:07:23 · 592 阅读 · 0 评论 -
STL系列之八 slist单链表
http://blog.youkuaiyun.com/morewindows/article/details/7186471微软的VS208所使用的PJ STL(注1)中的list是双链表,但在某些场合,一个轻量级的单链表会更加合适。单链表非常常见,这里就不去细说了,本文的slist(single linked list)单链表实现了链表的基本功能,如有需要,以后还会扩充的。slist单链表(带头结点)的转载 2012-11-12 09:19:31 · 636 阅读 · 0 评论 -
(i++)+(i++)And (++i)+(++i)
http://www.cnblogs.com/hustcat/archive/2009/06/02/1494311.html与在前面:++(--)有太多让人困惑的地方,(i++)+(i++)与(++i)+(++i)有什么不同?为什么不同?如果从机器的角度去理解,就会豁然开朗。先来看段程序:int main() { int i=3; int j=(i++)+(i++转载 2012-11-26 16:49:27 · 761 阅读 · 0 评论 -
秒杀多线程第八篇 经典线程同步 信号量 Semaphore
阅读本篇之前推荐阅读以下姊妹篇:《秒杀多线程第四篇一个经典的多线程同步问题》《秒杀多线程第五篇经典线程同步关键段CS》《秒杀多线程第六篇经典线程同步事件Event》《秒杀多线程第七篇经典线程同步互斥量Mutex》前面介绍了关键段CS、事件Event、互斥量Mutex在经典线程同步问题中的使用。本篇介绍用信号量Semaphore来解决这个问题。首先也来看看如何使用信号量,转载 2012-11-09 09:38:03 · 746 阅读 · 0 评论 -
秒杀多线程第4篇 一个经典的多线程同步问题
http://blog.youkuaiyun.com/morewindows/article/details/7442333上一篇《秒杀多线程第三篇原子操作 Interlocked系列函数》中介绍了原子操作在多进程中的作用,现在来个复杂点的。这个问题涉及到线程的同步和互斥,是一道非常有代表性的多线程同步问题,如果能将这个问题搞清楚,那么对多线程同步也就打下了良好的基础。程序描述:主线程启动10转载 2012-11-08 20:13:57 · 586 阅读 · 0 评论 -
秒杀多线程系列之⑤ 经典线程之同步 关键段实现互斥
http://blog.youkuaiyun.com/morewindows/article/details/7442639 上一篇《秒杀多线程第四篇 一个经典的多线程同步问题》提出了一个经典的多线程同步互斥问题,本篇将用关键段CRITICAL_SECTION来尝试解决这个问题。本文首先介绍下如何使用关键段,然后再深层次的分析下关键段的实现机制与原理。关键段CRITICAL_SECTION一共转载 2012-11-08 20:03:46 · 704 阅读 · 0 评论 -
秒杀多线程第三篇 原子操作 InterLocked系列函数
http://blog.youkuaiyun.com/morewindows/article/details/7429155上一篇《多线程第一次亲密接触 CreateThread与_beginthreadex本质区别》中讲到一个多线程报数功能。为了描述方便和代码简洁起见,我们可以只输出最后的报数结果来观察程序是否运行出错。这也非常类似于统计一个网站每天有多少用户登录,每个用户登录用一个线程模拟,线程运行时转载 2012-11-07 09:47:43 · 728 阅读 · 0 评论 -
STL系列之五 priority_queue 优先队列
http://blog.youkuaiyun.com/morewindows/article/details/6976468priority_queue 优先级队列是一个拥有权值概念的单向队列queue,在这个队列中,所有元素是按优先级排列的(也可以认为queue是个按进入队列的先后做为优先级的优先级队列——先进入队列的元素优先权要高于后进入队列的元素)。在计算机操作系统中,优先级队列的使用是相当频繁的,转载 2012-11-07 09:09:55 · 544 阅读 · 0 评论 -
写一个String的构造函数 考察浅拷贝知识
class CStringTest{public: CStringTest(char *str) { int length=0; while(str[length]!='\0') { length++; } m_data=(char*)malloc(sizeof(char)*(length+1)); strcpy(m_data,str); } CStrin转载 2012-10-25 21:46:41 · 492 阅读 · 0 评论 -
动态数组
以下内容是转的 ,但是究竟是转自谁的,我也不是很清楚了,但是是在csdn上的,我无意在百度空间看到了这篇,这篇论文那个作者没写出处。我加了一些截图,供以后看着舒服。 动态数组的定义: int *pia=new int[10];//array of 10 uninitialized ints 10个没有经过初始化的整形。 此new表达式分配了一个含有10个int型元素的数组,并返转载 2012-01-15 11:00:04 · 1665 阅读 · 0 评论