站内搜索

六种排序的C++实现

class SortNum   
{  
public:  
 SortNum();  
 virtual ~SortNum();  
    void exchange(int& b,int& c);//交换数据  
    void listout(int a[],int n);//列出所有  
 void selectSort(int a[],int n);//选择  
 void bublbleSort(int a[],int n);//冒泡  
 void insertSort(int a[],int n);//插入  
 void baseSort(int a[],...

        

cocos2d-X学习之坐标系统

  在cocos2d-x中有两种坐标系,分别是屏幕坐标系和open gl坐标系。
    屏幕坐标系:x轴朝右,y轴朝下。默认原点在左上角,如下图:

     这个是一般的图形系统使用的坐标,也是windows系统的默认坐标体系。但由于cocos2d-x引擎使用的是open gl es进行渲染的,所以其默认是...

cocos2d-X学习之引擎源码目录结构介绍

Cocos2d-x的目录结构如下:

目录的具体结构介绍如下:
Box2D:物理引擎Box2D的相关源文件
Chipmunk:物理引擎chipmunk的相关源文件
cocos2dx:cocos2d-x引擎的核心部分,存放了引擎的大部分源文件
CocosDenshion:声音模块相关源文件
Debug.win32:在Windows 上调试输出目录
Doxygen:生成dox...

C++析构函数

析构函数(destructor)也是一个特殊的成员函数,它的作用与构造函数相反,它的名字是类名的前面加一个“~”符号。
在C++中“~”是位取反运算符,从这点也可以想到:析构函数是与构造函数作用相反的函数。当对象的生命期结束时,会自动执行析构函数。
具体地说如果出现以下几种情况,程序就会执行析构函数:
①如果在一个函数中定义了一个对象(它是自动局部对象),当这个函数被调用结束时,对象应该释放,在对象释放前自动执行析构函数。
②static局部对象在函数调用结束时对象并不释放,因此也不调用析构函数,只在main函数结束或调用exit函数结束程序时,才调用static局部对象的析构...

        

C++内联函数

(1)什么是内联函数?
内联函数是指那些定义在类体内的成员函数,即该函数的函数体放在类体内。
(2)为什么要引入内联函数?
当然,引入内联函数的主要目的是:解决程序中函数调用的效率问题。另外,前面我们讲到了宏,里面有这么一个例子:
#define ABS(x) ((x)>0? (x):-(x))
当++i出现时,宏就会歪曲我们的意思,换句话说就是:宏的定义很容易产生二意性。
  
我们可以看到宏有一些难以避免的问题,怎么解决呢?前面我们已经尽力替换了。
下面我们用内联函数来解决这些问题。
(3)为什么inline能取代宏?
1、 inline 定义的类的内联函数,函...

        

C++友元函数

友元函数和友元类的需要:
    类具有封装和信息隐藏的特性。只有类的成员函数才能访问类的私有成员,程序中的其他函数是无法访问私有成员的。非成员函数可以访问类中的公有成员,但是如果将数据成员都定义为公有的,这又破坏了隐藏的特性。另外,应该看到在某些情况下,特别是在对某些成员函数多次调用时,由于参数传递,类型检查和安全性检查等都需要时间开销,而影响程序的运行效率。
  为了解决上述问题,提出一种使用友元的方案。友元是一种定义在类外部的普通函数,但它需要在类体内进行说明,为了与该类的成 员函数加以区别,在说明时前面加以关键字friend。友元不是成员函数,但...

        

C++友元类

当一个类B成为了另外一个类A的“朋友”时,那么类A的私有和保护的数据成员就可以被类B访问。我们就把类B叫做类A的友元。
友元类可以通过自己的方法来访问把它当做朋友的那个类的所有成员。但是我们应该注意的是,我们把类B设置成了类A的友元类,但是这并不会是类A成为类B的友元。说白了就是:甲愿意把甲的秘密告诉乙,但是乙不见得愿意把乙自己的秘密告诉甲。
声明友元类的方法其实很简单,只要我们在类A的成员列表中写下如下语句:
friend class B;
  这样一来,类B就被声明成了类A的友元。注意,类B虽然是类A的友元,但是两者之间不存在继承关系。这也就是说,友元类和原来那个类之间并没有什么...

C++ ->是什么?

->指向类的指针,叫类指针,例如下面通过MyClass 类的指针pPointer 访问MyClass 类的成员变量
class MyClass
{
public:
int m_Number;
char m_Character;
};
void main()
{
MyClass *pPointer;
pPointer = new MyClass;
pPointer->m_Number = 10;
pPointer->m_Character = 's';
delete pPointer;
}
 

作用域运算符::是什么?

::是C++里的“作用域运算符”。
比如声明了一个类A,类A里声明了一个成员函数void f(),但没有在类的声明里给出f的定义,那么在类外定义f时,就要写成void A::f(),表示这个f()函数是类A的成员函数。
:: 一般还有一种用法,就是直接用在全局函数前,表示是全局函数。当类的成员函数跟类外的一个全局函数同名时,在类内定义的时候,打此函数名默认调用的是本身的成员函数;如果要调用同名的全局函数时,就必须打上::以示区别。比如在VC里,你可以在调用API函数时,在API函数名前加::。

什么是指针?C++指针

这是一篇我所见过的关于指针的最好的入门级文章,它可使初学者在很短的时间内掌握复杂的指针操作。虽然,现在的Java、C#等语言已经取消了指针,但作为一个C++程序员,指针的直接操作内存,在数据操作方面有着速度快,节约内存等优点,仍是很多C++程序员的最爱。指针就像是一把良剑,就看你怎么去应用它!
 
什么是指针?
  其实指针就像是其它变量一样,所不同的是一般的变量包含的是实际的真实的数据,而指针是一个指示器,它告诉程序在内存的哪块区域可以找到数据。这是一个非常重要的概念,有很多程序和算法都是围绕指针而设计的,如链表。
开始学习
  如何定义一个指针呢?就像你定义一个其它变量一样,只不过你要在指...