- 博客(26)
- 收藏
- 关注
转载 Xcode 4.3 xcode-select路径问题
事情是这样的。家里那台 Macbook Pro 装的是 Xcode 4.2.x,公司用的 Mini Mac 装的是 Xcode 4.3。发现想要在终端下通过 make 编译一些东西,似乎 Xcode 4.2.x 版本要比 4.3 好用。4.3 在终端下 make 编译会遇到错误,总是提示需要通过 xcode-select 来更新什么路径,也不太明白。直到遇到了 icyleaf 和 User y
2013-07-31 00:49:01 2891
转载 ios单元测试相关文章
iOS开发中的单元测试(一)iOS开发中的单元测试(二)——让断言活泼起来的匹配引擎IOS 单元测试iOS单元测试XCode下的iOS单元测试iOS开发进阶之单元测试iOS开发那些事--OCUnit测试框架iOS开发那些事--编写OCUnit测试方法-应用测试方法iOS开发那些事--编写OCUnit测试方法-逻辑测试方法
2013-07-30 17:55:04 671
转载 C++构造函数虚拟化
虚拟构造函数当你有一个指针或引用,但是不知道其指向对象的真实类型是什么时,你可以调用虚拟函数来完成特定类型(type-specific)对象的行为。仅当你还没拥有一个对象但是你确切地知道想要对象的类型时,你才会调用构造函数。那么虚拟构造函数又从何谈起呢?例如假设你编写一个程序,用来进行新闻报道的工作,一条新闻报道由文字或图片组成。你可以这样管理它们:class NLCompon
2013-07-30 13:06:12 586
转载 复制构造函数在什么时候被调用?
转自:http://www.slyar.com/blog/cpp-copy-constructor.html 这个问题不是疑问了,查了一下国外网站,总结一下。假设Person是一个类,复制构造函数的调用会在以下几种情况下发生:1、对象在创建时使用其他的对象初始化Person p(q); //此时复制构造函数被用来创建实例pPerson p = q; //此时复制构造函数被用来在
2013-07-30 12:00:02 2810
转载 为何new出的对象数组必须要用delete[]删除,而普通数组delete和delete[]都一样
温馨提示:该文所有测试没有特殊说明都是在Debug模式下!用的是VS2010编译器!==================================================================================================================================== 1.在释放堆栈中c++基本数据(包
2013-07-29 19:16:37 859
转载 const、volatile区别
1、const下面的声明都是什么意思? const int a;int const a;const int *a;int * const a;int const * a const; /******/前两个的作用是一样,a是一个常整型数。第三个意味着a是一个指向常整型数的指针(也就是,整型数是不可修改的,但指针可以)。第四个意思a是一个指向整型数的常指针(也就是说,
2013-07-29 12:33:47 1430
转载 C语言的5种存储类以及关键字volatile、restrict
《C Primer Plus》读到12章,我的C语言复习进展的挺不错。这一章介绍存储类、连接和内存管理,可以说是重中之重。C的5种存储类:自动——在一个代码块内(或在一个函数头部作为参量)声明的变量,无论有没有存储类修饰符auton,都属于自动存储类。该类具有自动存储时期、代码块的作用域和空链接(no linkage),如未初始化,它的值是不确定的(java要求局部变量必须初始化)
2013-07-29 12:22:32 540
转载 虚继承---虚基类 菱形继承关系
虚继承就是虚基类的使用;引入虚基类的目的是为了解决类继承过程中产生的二义性问题;这种二义性问题常见于具有菱形继承关系的类中;比如:有四个类:A、B、C、D;它们之间的继承关系是:B继承A,C继承A,D继承B和C;这就形成了一个菱形的继承关系;具有这种继承关系的图叫做有向无环图;那么类D就有两条继承路径:D-->B-->A和D-->C-->A;而类A是派生类D的两条继承路径上的公共基类,
2013-07-26 13:17:03 641
转载 C++中实现Singleton的正确方法
转自:http://yunli.blog.51cto.com/831344/758684 如果某个类管理了系统中唯一的某种资源,那么我们只能创建该类的一个实例,此时用到singleton设计模式(后面为了简化将省略“设计模式”四个字)就比较合适了。然而,如果不注意实现方法,就很有可能会让我们碰到一些莫名其妙的错误。图1是经过简化所得到的一个实现错误的例子。main.c 00001: #
2013-07-25 17:27:41 493
转载 C++完美实现Singleton模式
Singleton模式是常用的设计模式之一,但是要实现一个真正实用的设计模式却也不是件容易的事情。1. 标准的实现class Singleton{public: static Singleton * Instance() { if( 0== _instance) {
2013-07-25 17:24:26 688
转载 Vector 是线程安全的?
或许,大家经常也碰到类似的问题:Vector 与 ArrayList 的区别?好多人一拍脑门就出:Vector 是线程安全的 (在任何情况下都是)。。。原因可能是因为 Vector 的所有方法加上了 synchronized 关键字,从而保证访问 vector 的任何方法都必须获得对象的 intrinsic lock (或叫 monitor lock),也即,在vector内部,其
2013-07-25 10:47:37 18176 6
转载 异常与构造函数、析构函数
转自:异常与构造函数、析构函数 写Java代码的时候,遇到错误总是喜欢抛出异常,简单实用。最近开始写C++代码,发现异常没那么简单,使用须谨慎。 翻阅了《Effective C++》 《More Effective C++》《Inside The C++ Object Model》的相关章节,大概弄明白了一些东东,总结在本文。 本文不是总结普适的C++异常机制,还
2013-07-24 10:36:59 716
转载 关于C语言中继承和多态的实现
在C中实现继承。 对于例(1)中,有个重大的缺点,那就是缺乏类型安全。那么下面就可以使用继承来实现保证类型安全。typedef struct tagT_MsgHeader { int id; //...}MsgHeader;typedef struct tagT_Msg1 { MsgHeader h; int
2013-07-23 18:22:32 851
转载 Linux中brk(),sbrk(),mmap(),malloc(),calloc()的异同
Linux中brk(),sbrk(),mmap(),malloc(),calloc()的异同brk和sbrk主要的工作是实现虚拟内存到内存的映射.在GNUC中,内存分配是这样的: 每个进程可访问的虚拟内存空间为3G,但在程序编译时,不可能也没必要为程序分配这么大的空间,只分配并不大的数据段空间,程序中动态分配的空间就是从这一块分配的。如果这块空间不够,malloc函数族(r
2013-07-23 16:41:54 1071
转载 placement new
今天看STL源码遇到一个问题: template inline void _Construct(_T1* __p, const _T2& __value) { new ((void*) __p) _T1(__value);} 上网搜到了一些文章,分享了: 原帖地址: http://www.ksarea.com/articles/20080124_cc.html
2013-07-23 11:31:01 807
转载 C++ typeof基本应用方式解析
一、基本用法。1、C++ typeof表达式。以下是它列出的用法:a、取表达式的值的类型:template class A, class B> function operator*(A a, B b) -> typeof(a*b); // return type last // big change: function keyword // : and return are o
2013-07-22 16:56:18 3306
转载 C++内存对齐详细使用指南
一、为什么会有C++内存对齐以下内容节选自《Intel Architecture 32 Manual》。为了提高程序的性能,数据结构(尤其是栈)应该尽可能地在自然边界上对齐。原因在于,为了访问未对齐的内存,处理器需要作两次内存访问;然而,对齐的内存访问仅需要一次访问。一个字或双字操作数跨越了4字节边界,或者一个四字操作数跨越了8字节边界,被认为是未对齐的,从而需要两次总线周期来访问内存
2013-07-22 14:40:48 625
转载 reinterpret_cast,const_cast,static_cast,dynamic_cast 显式类型转换
reinterpret_cast,const_cast,static_cast,dynamic_cast 显式类型转换 Cpp代码 #include int main(void) { //reinterpret_cast //将一个类型指针转换为另一个类型指针,这种在转换不修改指针变量值数据存放格式 //只需在编译时重新解释指针的类
2013-07-22 14:01:53 610
转载 内存区划分、内存分配、常量存储区、堆、栈、自由存储区、全局区[C++][内存管理]
转自:http://blog.sina.com.cn/s/blog_7edcf63b0100yhk9.html 一. 在c中分为这几个存储区1.栈 ——由编译器自动分配释放2.堆 ——一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3.全局区(静态区)——全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态
2013-07-22 13:43:26 777
转载 C++关键字
#pragma data_segC++关键字--volatileC++关键字(1)——constC++关键字(2)——externC++关键字(3)——staticC++ 运算符重载--operatorC++ 关键字——friend
2013-07-22 13:41:43 691
转载 C++关键字——const
C++关键字(1)——const部分内容来自作者JuKevin1. const修饰普通变量和指针const修饰变量,一般有两种写法:const TYPE value;TYPE const value;这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。对于一个非指针的类型TYPE,无论怎么写,都是一个含义,即va
2013-07-22 13:31:21 619
转载 C++ 关键字——friend
C++ 关键字——friend 友元是指:采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分,但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除了友元函数外,还有友元类,两者统称为友元。友元的作用是提高了程序的运行效率(即减少了
2013-07-22 13:19:12 602
转载 C++ explicit关键字应用方法详解
C++编程语言中有很多比较重要的关键字在实际编程中起着非常重要的作用。我们今天为大家介绍的C++ explicit关键字就是其中一个应用比较频繁的关键字。下面就让我们一起来看看这方面的知识吧。C++ explicit关键字用来修饰类的构造函数,表明该构造函数是显式的,既然有"显式"那么必然就有"隐式",那么什么是显示而什么又是隐式的呢?如果c++类的构造函数有一个参数,那么在编译的时候就会
2013-07-22 13:14:30 481
转载 类模板与模板类
1.类模板与模板类的概念⑴ 什么是类模板 一个类模板(也称为类属类或类生成类)允许用户为类定义一种模式,使得类中的某些数据成员、默写成员函数的参数、某些成员函数的返回值,能够取任意类型(包括系统预定义的和用户自定义的)。 如果一个类中数据成员的数据类型不能确定,或者是某个成员函数的参数或返回值的类型不能确定,就必须将此类声明为模板,它的存在不是代表一个具体的、实际的类,而是代表着一类类。
2013-07-22 12:20:30 1354
转载 offsetof宏解析
offsetof宏解析今天看代码时,发现一个有用的东东,offsetof(s,m),这是一个宏,MSDN文档的说明如下:Retrieves the offset of a member from the beginning of its parent structure.size_t offsetof(structName,memberName );
2013-07-22 10:51:53 1469
转载 C++构造函数初始化顺序
C++构造函数初始化顺序C++构造函数按下列顺序被调用:(1)任何虚拟基类的构造函数按照它们被继承的顺序构造;(2)任何非虚拟基类的构造函数按照它们被继承的顺序构造;(3)任何成员对象的构造函数按照它们声明的顺序调用;(4)类自己的构造函数。#include using namespace std;class OBJ1{public:
2013-07-22 10:41:12 575
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人