![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++编程语言深入详解
一捧光阴
蹉跎错,消磨过,最是光阴化浮沫
展开
-
C++基本数据类型和内存映像(1)
什么是数据类型? 数据类型是用来定义变量的值的类型,每种数据类型对应特定的字节数。例如在32位操作系统上,int类型的变量就占用4个字节的内存单元,而double类型占用8个字节的内存单元。字节是什么? 字节是内存编址的最小单位,因为语言必须支持对一个单元(基本数据类型或混合数据类型的变量或对象)进行地址运算,而这个地址必须是有效的内存单元地址,所以最小对象(包括空对象)都会占用一个字节的内存空原创 2016-04-06 14:26:20 · 786 阅读 · 0 评论 -
Cocos2d-x 面试题解
1、Cocos2d-x是怎样实现跨平台?AppDelegate作为跨平台程序入口,在这之上做了另一层的封装,封装了不同平台的不同实现。比如我们通常认为一个程序是由 main 函数开始运行,那我们就去找寻,我们看到了在 proj.linux 目录下存在 main.cpp 文件。在main.cpp 中 CCApplication::sharedApplication()–>run(); 这一句看起,这一原创 2016-06-05 16:31:15 · 4327 阅读 · 0 评论 -
const有什么用途?
定义常量被const修饰过的变量不能被修改,故此具有常量之称。如果类的成员变量是常量,那么在初始化的时候必须初始化。const int MAX = 100;修饰函数const可以修饰函数的返回值,参数及,函数的定义体,被const修饰会受到强制的保护,能防止意外的修改,从而提高函数的健壮性。1.修饰参数不能在定义体中修改形参的值// 函数声明void updateWithID(const int原创 2016-04-19 14:46:48 · 6216 阅读 · 0 评论 -
多进程和多线程
我们都知道进程是操作系统资源分配的最小单位,而线程是CPU调度的最小单位。 先说说多线程的好处: (1)可以把占据时间长的任务放到后台去执行; (2)比如当用户点击按钮触发一个事件后,可以使用界面的进度条显示处理的进度; (3)一个进程中有多个线程的话,可能相对的加快程序的执行;下面来对比一下多进程和多线进程在各方面的优劣: (1)数据共享和同步方面: 进程之间的数据是分开的,因此多进程原创 2016-05-27 18:38:39 · 572 阅读 · 0 评论 -
编写String的构造函数、析构函数、拷贝构造函数、赋值函数
函数原型class String{public: String(const char* str = ""); ~String(); String(const String& other); String&::operator=(const String& other);};String的普通构造函数String::String(const char* str)原创 2016-04-19 15:04:27 · 453 阅读 · 0 评论 -
C++三元运算符?:
C++有3种运算符:算数运算符、关系运算符和逻辑运算符。运算符在计算机中的执行顺序 运算符用来构成表达式并指示计算机执行计算,其基本特性就是优先级和结合律。在没有使用小括号确定一个复合表达式中个运算符的计算顺序的情况下,编译器将使用它们的优先级和结合律老确定计算顺序,优先级越高的运算符越先运算。如果代码行中的运算符比较多,用括号确定表达式中每一个子表达式的计算顺序,避免使用默认优先级。C++中唯一原创 2016-04-07 13:31:23 · 46642 阅读 · 2 评论 -
同步和异步的区别
在计算机领域,同步就是指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息,那么这个进程将会一直等待下去,直到收到返回信息才继续执行下去;异步是指进程不需要一直等下去,而是继续执行下面的操作,不管其他进程的状态。当有消息返回时系统会通知进程进行处理,这样可以提高执行的效率。 而我们平时经常讨论的同步问题多发生在多线程环境中的数据共享问题。即当多个线程需要访问同一个资源时,它们需要以某种原创 2016-05-26 18:15:13 · 466 阅读 · 0 评论 -
原码、反码、补码详解
一. 机器数和真值在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.1、机器数一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1.比如,十进制中的数 +3 ,计算机字长为8位,转换成二进制就是00000011。如果是 -3 ,就是 10000011 。那么,这里的 00000011 和 10000011 就原创 2016-05-26 17:56:14 · 312 阅读 · 0 评论 -
C++枚举类型
在开发中常常会用枚举类型,枚举类型在没有赋初值的情况下,默认是从0开始的,之后的元素的值是前面个元素的值加1,当然,也可以给每个元素赋初值。enum GameModeType{ GameModeType_None = -1,// 无效值 GameModeType_Online, // 经典场 GameModeType_Crazy, // 疯狂场 GameM原创 2016-04-14 13:50:46 · 332 阅读 · 0 评论 -
C++vector方法详解
vector类称作向量类,它实现了动态数组,用于元素数量变化的对象数组。像数组一样,vector类也用从0开始的下标表示元素的位置;但和数组不同的是,当vector对象创建后,数组的元素个数会随着vector对象元素个数的增大和缩小而自动变化,故此有动态数组之称。vector类常用的函数如下所示:1.构造函数vector(); // 创建一个空vector原创 2016-04-14 13:25:22 · 723 阅读 · 0 评论 -
C++获得vector最后一个元素
std::vector<int> intVector;intVector[intVector.size() - 1]; // 方式1intVector.end(); // 方式2原创 2016-04-14 00:00:24 · 48797 阅读 · 6 评论 -
用C++设计一个不能被继承的类
如果将一个类设计成不能被继承来的类,只要把类的构造函数设置为私有的,即可解决问题。因为那样的话,子类就没有办法访问基类的构造函数,从而就阻止了进行子类构造对象的任务实现,也就达到了不可继承的目的。 因为构造方法为私有,所以外部也不能调用构造函数生成实例,我们需要提供特殊的方法创建实例。 具体做法是定义静态方法,在方法内部实现一个对象,然后返回它的指针。class Base{public:原创 2016-04-07 14:53:47 · 697 阅读 · 0 评论 -
常见变量与零值比较
1.布尔变量与零值比较 假设布尔变量为m_bool,它与零值比较的标准if语句如下:// 表示为真if (m_bool){ // 语句}// 表示为假if (!m_bool){ // 语句}不要将布尔变量m_bool直接与true或者1,-1,0等进行比较。整型变量与零值比较 假设整型变量为:m_int,它与零值比较的标准if语句如下:// 整型变量等于0if (m原创 2016-04-07 14:22:30 · 1103 阅读 · 0 评论 -
C++中的#和##运算符
#和##运算符 #:构串操作符 构串操作符#只能修饰带参数的宏的形参,它将实参的字符序列(而不是实参代表的值)转换成字符串常量#define STRING(x) #x#x#x#define TEXT(x) "class"#x"Info"//宏引用:int abc = 100;STRING(abc);TEXT(abc);//替换结果:abcabcabcclassabcInfo#原创 2016-04-07 11:31:16 · 7582 阅读 · 1 评论 -
C++类型转换(2)
类型转换的本质 从本质上说,C++/C不会直接对两个类型不同的操作数进行运算,如果操作数不同,编译器就会试图运用隐式类型转换规则或者按照用户要求进行强制类型转换,类型转换并不是改变原来变量的类型和值,而是生成了新的临时变元,其类型为目标类型。隐式类型转换 所谓的隐式类型转换,就是编译器在背后帮程序员做的类型转换工作,隐式类型转换的安全隐患是由编译器的责任。这里的安全性主要包括两个方面:内存单元访原创 2016-04-06 16:39:23 · 519 阅读 · 0 评论 -
什么是程序设计语言
什么是程序设计语言什么是程序设计语言? 程序设计语言实际上就是一套规范的集合,主要包括该语言使用的字符集,直接或间接支持的数据类型集合,运算符集合,关键字集合,指令集合,语法集合等,这些内容就是语言的特征集。什么是语言的实现? 语言实现就是具体的实现一种语言的各种特征并支持特定编程模式的技术和工具。一般来讲,编程语言的实现就是编译器(compiler)和连接器(linker)的编译连接模式,或者原创 2016-04-05 12:11:40 · 3674 阅读 · 0 评论 -
C++/C程序的基本概念(0)
C++/C程序的基本概念启动函数main()C++/C程序的可执行部分都是由函数组成的,main()函数就是所有程序中都应该提供的一个默认全局函数-主函数,所有的C++/C程序都应该从函数main()开始执行,但是语言本身不提供main()函数的实现。C++标准对main()函数不同于一般函数的限制 不能重载 不能内联 不能定义为静态不能取其地址 不能由用户自己调用 …内部名称 在C语言原创 2016-04-05 17:47:52 · 592 阅读 · 0 评论 -
C++输出文件名、函数名、行号
在调试中,控制台输出文件名、函数名、行号是非常有助于调试的std::cout << "file path = %s" << __FILE__;std::cout << "function name = %s" << __FUNCTION__;std::cout << "line = %d" << __LINE__;原创 2017-01-06 16:21:55 · 4128 阅读 · 0 评论