C++学习随笔

简介:

最近由于公司部门调整,博主被安排去做游戏开发了,使用的是cocos2d游戏引擎,开发语言为C++。所以硬着头皮边熟悉cocos2d边学C++。对于写了多年Java的来说,看C++代码很坑爹有木有。
但是作为Android工程师,C/C++还是有必要学的,因为Android系统源码大部分都是C写的。之前看过一段时间的Android源码,看到C++部分也是比较吃力,现在借此机会学学C++也是挺不错的。
下面简单记录在学习C++过程中遇到的一些不懂的东西(持续更新)。

std::nothrow

在内存不足时,new (std::nothrow)并不抛出异常,而是将指针置NULL。
如:auto layer = new (std::nothrow) FirstLayer();

auto
auto是C++11的新特性,自动类型推断,用于从初始化表达式中推断出变量的数据类型,有点类似于js中的弱类型var。

#pragma once
只要在头文件的最开始加入这条杂注,就能够保证头文件只被编译一次。但是是依赖编译器的,可以使用宏定义#ifndef

#ifndef,#define,#endif
C/C++语言中的宏定义,通过宏定义避免文件多次编译

#if与if的区别

#endif//与#if对应
作为一个编译“开关”,比如:

#if(条件满足)
执行代码1

#else
执行代码2

#endif
假如编译时,确实满足条件,则生成的程序文件(.exe文件)中不会有执行代码2的。如果用普通if语句,生成的程序文件就会 有执行代码2,这个区别看看生成文件大小就可以知道。如果你的条件在程序编译前就已经确定了,那就用#if;如果条件需要在程序运行过程中才能判断,则用 if。

static_cast
用法:static_cast < type-id > ( expression )
该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。有点类似于Java中的强制转换。

string与int拼接
1、stringstream拼接string与int

stringstream ss;
ss << "old:"<< GameOverScene::goldNum << ",distance:" << GameOverScene::distance;
LabelTTF* goldAndDistanceLabel = LabelTTF::create(ss.str(), "Arial", 30);

2、sprintf函数

char countBuf[16] = "";
sprintf(countBuf, "distance:%d", mDistance);

3、std::to_string函数

string s = "run0" + std::to_string(i) + ".png";

安卓没有to_string这个函数,eclipse中编译出错,为了跨平台,尽量使用stringstream或者sprintf

相关文章
|
2天前
|
存储 编译器 C语言
c++的学习之路:5、类和对象(1)
c++的学习之路:5、类和对象(1)
17 0
|
17天前
|
存储 C++ 容器
C++STL(标准模板库)处理学习应用案例
【4月更文挑战第8天】使用C++ STL,通过`std:vector`存储整数数组 `{5, 3, 1, 4, 2}`,然后利用`std::sort`进行排序,输出排序后序列:`std:vector<int> numbers; numbers = {5, 3, 1, 4, 2}; std:sort(numbers.begin(), numbers.end()); for (int number : numbers) { std::cout << number << " "; }`
19 2
|
27天前
|
存储 安全 编译器
C++学习过程中的一些值得注意的小点(1)
C++学习过程中的一些值得注意的小点(1)
|
28天前
|
存储 算法 数据库
【C++ 软件设计思路】学习C++中如何生成唯一标识符:从UUID到自定义规则
【C++ 软件设计思路】学习C++中如何生成唯一标识符:从UUID到自定义规则
104 0
|
1月前
|
C++
C++学习系列---读取文件名存入txt和从txt读取每行信息
C++学习系列---读取文件名存入txt和从txt读取每行信息
|
1月前
|
存储 资源调度 算法
Opencv(C++)系列学习---SIFT、SURF、ORB算子特征检测
Opencv(C++)系列学习---SIFT、SURF、ORB算子特征检测
|
2天前
|
C++
c++的学习之路:7、类和对象(3)
c++的学习之路:7、类和对象(3)
19 0
|
1月前
|
编译器 测试技术 C++
【Python 基础教程 01 全面介绍】 Python编程基础全攻略:一文掌握Python语法精髓,从C/C++ 角度学习Python的差异
【Python 基础教程 01 全面介绍】 Python编程基础全攻略:一文掌握Python语法精髓,从C/C++ 角度学习Python的差异
165 0
|
2天前
|
C语言 C++
c++的学习之路:4、入门(3)
c++的学习之路:4、入门(3)
17 0
|
2天前
|
编译器 C++
c++的学习之路:23、多态(2)
c++的学习之路:23、多态(2)
16 0

热门文章

最新文章