
C和C++
文章平均质量分 81
gjy938815
在硬件、软件、算法等方面有多年工作经验
展开
-
字对齐问题 .
看结构体和共用体部分的时候,遇到了一个新名词“内存对齐”。先引入问题。如下: 1 struct student 2 { 3 char name[20]; 4 int age; 5 char sex; 6 char phone[15]; 7 }; 8 struct student p1; sizeof(p1)=? 这个很简单得出答案转载 2013-06-28 08:32:15 · 411 阅读 · 0 评论 -
调试信息的宏定义 .
#define debug(format, ...) NSlog(@"DEBUG[%s %s %d]: "format,__FILE__,__FUNCTION__,__LINE__,##__VA_ARGS__) #define info(format, ...) NSlog(@"INFO[%s %s %d]: "format,__FILE__,__FUNCTION__,__LINE__,##_转载 2013-09-20 09:49:51 · 586 阅读 · 0 评论 -
宏定义中的##操作符和... and _ _VA_ARGS_ _ .
http://www.cnblogs.com/pengyingh/articles/2407265.html 1.Preprocessor Glue: The ## Operator 预处理连接符:##操作符 Like the # operator, the ## operator can be used in the replacement section of a f转载 2013-09-20 09:49:03 · 1112 阅读 · 0 评论 -
#,##讲解 .
转自http://www.cnblogs.com/mydomain/archive/2010/09/25/1834917.html #,## 1、在一个预处理器宏中的参数前面使用一个#,预处理器会把这个参数转换为一个字符数组。(原文:When you put a # before an argument in a preprocessor macro, the p转载 2013-09-19 21:25:45 · 520 阅读 · 0 评论 -
c++ 三种继承(public protect private)
主要参考了下面的文章,根据它来谈谈自己的看法。 参考文章:http://blog.sina.com.cn/s/blog_60cc33d70100xylq.html 先贴张图: 1. public继承 从语义角度上来说,public继承是一种接口继承(可以理解为子类对象可以调用父类的接口,也就有可能实现多态了) 从语法角度上来说,public继承后,关系见上图。很明转载 2013-09-05 15:52:30 · 607 阅读 · 0 评论 -
public protected private 成员函数和成员变量在public protected private 继承后访问权限问题
第一:private, public, protected 访问标号的访问范围。 private:只能由1.该类中的函数、2.其友元函数访问。 不能被任何其他访问,该类的对象也不能访问。 举例如下: // public_protect_private.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include using names转载 2013-09-05 15:46:31 · 686 阅读 · 0 评论 -
友元函数和友元类 .
转自:http://www.cppblog.com/twzheng/articles/21020.html 友元函数和友元类 采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分,但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元转载 2013-09-05 15:55:09 · 461 阅读 · 0 评论 -
关于C++中的友元函数的总结
1.友元函数的简单介绍 1.1为什么要使用友元函数 在实现类之间数据共享时,减少系统开销,提高效率。如果类A中的函数要访问类B中的成员(例如:智能指针类的实现),那么类A中该函数要是类B的友元函数。具体来说:为了 使其他类的成员函数直接访问该类的私有变量。即:允许外面的类或函数去访问类的私有变量和保护变量,从而使两个类共享同一函数。 实际上具体大概有下面两种情况需要使用友元函数:(1)运算转载 2013-09-05 15:51:36 · 521 阅读 · 0 评论 -
C++用new和不用new创建类对象区别 .
起初刚学C++时,很不习惯用new,后来看老外的程序,发现几乎都是使用new,想一想区别也不是太大,但是在大一点的项目设计中,有时候不使用new的确会带来很多问题。当然这都是跟new的用法有关的。new创建类对象,使用完后需使用delete删除,跟申请内存类似。所以,new有时候又不太适合,比如在频繁调用场合,使用局部new类对象就不是个好选择,使用全局类对象或一个经过初始化的全局类指针似乎更加高转载 2013-09-04 21:33:32 · 480 阅读 · 0 评论 -
介绍一个线程封装类(CThread)
线程是编程中一个重要的概念。为了充分利用cpu,程序常采用多线程处理。操作系统与线程相关的函数皆为 c 函数接口。直接使用API生成和使用线程,不符合面向对象的处理逻辑。 本文介绍一个线程封装类CThread,这个类中封装了与线程相关操作。将线程封装成类后,线程也具有了对象的概念。线程就更加容易理解和使用。 与线程相关的操作有以下几个方面:1.线程的启动。2.线程的停止。3 线程的转载 2013-09-04 21:31:03 · 1735 阅读 · 0 评论 -
关于typedef的一些用法总结 .
不管实在C还是C++代码中,typedef这个词都不少见,当然出现频率较高的还是在C代码中。typedef与#define有些相似,但更多的是不同,特别是在一些复杂的用法上,就完全不同了,看了网上一些C/C++的学习者的博客,其中有一篇关于typedef的总结还是很不错,由于总结的很好,我就不加修改的引用过来了,以下是引用的内容(红色部分是我自己写的内容)。 用途一: 定义一种类型的别转载 2013-06-29 14:08:43 · 417 阅读 · 0 评论 -
C++中的构造函数小结
对象的初始化 对象时类的实例,类是不占用空间的,对象是占用空间的。 因为类是抽象的,不占用空间的,所以我们不能再定义类的时候对对象进行初始化操作的。 但是,我们可以定义一个函数,在类实例化一个对象的时候,对对象赋初值,这个函数就叫做构造函数。 构造函数是类在定义对象的时候,自动执行的对对象中的数据进行初始化操作的函数。 构造函数的作用 构造函数不同于其他的函数,不需要用户调用它(用户也转载 2013-09-05 19:56:36 · 480 阅读 · 0 评论