关闭

#ifndef..#define..#endif和#pragma once的区别

两个的作用都是防止头文件重复包含 #ifndef的方式依赖于宏名字不能冲突,这不光可以保证同一个文件不会被包含多次,也能保证内容完全相同的两个文件不会被不小心同时包含。当然,缺点就是如果不同头文件的宏名不小心"撞车",可能就会导致头文件明明存在,编译器却硬说找不到声明的状况。 #pragma once则由编译器提供保证:同一个文件不会被包含多次。注意这里所说的"同一个文件"是指...
阅读(66) 评论(0)

变量名的一些规则

变量的命名:变量名由作用域前缀+类型前缀+一个或多个单词组成。为便于界定,每个单词的首字母要大写。 作用域前缀: 前缀 说明 无 局部变量 m_ 类的成员变量(member) sm_ 类的静态成员变量(static member) s_ 静态变量(stati...
阅读(40) 评论(0)

typedef的使用与define的区别

基本定义: typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。 在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。 用途一:与#define的区别 typedef 行为有点像 #define 宏,用其实际类型替代...
阅读(67) 评论(0)

C++中的struct和class的区别

成员的默认访问权限:struct是public,class是private。 默认的继承权限:struct是public,class是private。 首先是标准的建议,能用class就不要用struct,因为struct是C关键字。在C++中使用struct是一种Deprecate的行为,不被推荐。主要是出于和C语言的兼容性考虑:struct应当单纯地用于数据成员的聚合。打包传参这种功能st...
阅读(44) 评论(0)

virtual关键字的使用

1.虚函数 类Base中加了Virtual关键字的函数就是虚拟函数(例如函数print),于是在Base的派生类Derived中就可以通过重写虚拟函数来实现对基类虚拟函数的覆盖。当基类Base的指针point指向派生类Derived的对象时,对point的print函数的调用实际上是调用了Derived的print函数而不是Base的print函数。这是面向对象中的多态性的体现 基类的函数...
阅读(62) 评论(0)

【Cocos2d-x游戏开发】解决Cocos2d-x中文乱码的三种方法

众所周知,Cocos2d-x是一款不错的开源引擎,但是在Cocos2d-x中直接使用中文是无法正确显示的。 解决这个问题常用的有三种方法: 1.通过转换为UTF-8编码来显示。 2.使用iconv库来解决。 3。使用解析xml或者json文件来解决。 这里推荐使用第三种方法来解决,因为比较简单方便,还能支持I18N国际化。下面我们来一一详细了解一下每种解决方案的具体实现: 1、...
阅读(94) 评论(0)

细数Cocos2d-x开发中那些常用的C++11知识

自从Cocos2d-x3.0开始,Cocos2dx就正式的使用了C++11标准.C++11简洁方便的特性使程序的可拓展性和可维护性大大提高,也提高了代码的书写速度。 下面我们就来一起学习一下Cocos2d-x开发中那些不得不了解的C++11知识。  1.初始化列表 POD结构或者数组根据成员在结构内定义的顺序,可以使用初始化列表来进行初始化以简化代码。 struct StructA{...
阅读(73) 评论(0)

标准模板库STL入门简介与常见用法

一、STL简介 1、什么是STL STL(Standard Template Library)标准模板库,主要由容器、迭代器、算法、函数对象、内存分配器和适配器六大部分组成。STL已是标准C++的一部分,使用STL开发系统可以提高开发效率。 2、容器(Containers) 容器类是可以包含其它对象的模板类,如向量类(vector)、链表类(list)、双向队列类(deque)、集合类(s...
阅读(104) 评论(0)

C++ vector容器

1、基本操作 (1)头文件#include. (2)创建vector对象,vector vec; (3)尾部插入数字:vec.push_back(a); (4)使用下标访问元素,cout记住下标是从0开始的。 (5)使用迭代器访问元素. vector::iterator it; for(it=vec.begin();it!=vec.end();it++)     cout (6)...
阅读(39) 评论(0)

C++ list容器

1、创建一个list实例并赋值 // 创建实例以及赋值 #include #include using namespace std; int main () {     //第一种,通过构造函数     int myints[] = {75,23,65,42,13};     list mylist1(myints, myints+5);     list mylist2(2...
阅读(57) 评论(0)

C++ deque容器

C++ Deque(双向队列)     是一种优化了的、对序列两端元素进行添加和删除操作的基本序列容器。它允许较为快速地随机访问,但它不像vector 把所有的对象保存在一块连续的内存块,而是采用多个连续的存储块,并且在一个映射结构中保存对这些块及其顺序的跟踪。向deque 两端添加或删除元素的开销很小。它不需要重新分配空间,所以向末端增加元素比vector 更有效。     实际上,d...
阅读(38) 评论(0)

C++ map容器

Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作! 1、map最基本的构造函数;    mapmapstring;         mapmapint;    mapmapstring;         mapmapchar;    mapmapchar;            mapmapint;...
阅读(43) 评论(0)

C++ set容器

set集合容器: 调用头文件: #include using namespace std; 详细用法(部分): set t      ------      定义一个int类型的容器,注意set里的每个元素只会出现1次 t.insert(k)      ------      插入元素k,多次插入同一个元素后面无效 t.count(k)      ------      判断元素k是...
阅读(47) 评论(0)

STL中的find,find_if函数(对类、容器(vector、list)进行查找)

举例using namespace std; int main() { listlst; lst.push_back(10); lst.push_back(20); lst.push_back(30); list::iterator  it = find(lst.begin(), lst.end(), 10); // 查找list中是否有元素“10” if(it != lst....
阅读(44) 评论(0)

struct和typedef struct的区别

1 首先://注意在C和C++里不同     在C中定义一个结构体类型要用typedef: typedef struct Student { int a; }Stu;     于是在声明变量的时候就可:Stu stu1;(如果没有typedef就必须用struct Student stu1;来声明)     这里的Stu实际上就是struct Student的别名。Stu==stru...
阅读(34) 评论(0)
363条 共25页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:34566次
    • 积分:3791
    • 等级:
    • 排名:第8992名
    • 原创:355篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2条
    最新评论