做了两年的android应用了,现在想转cocos2d-x做游戏。那就从语言开始学吧,当然同时也要做些小东西,来具体学习,看了两章才有这个想法,发现这本书,不是主要讲C++怎么用,而是告诉c++语言怎么设计的。那么厚的书啊,不知道能不能坚持,写这个博客就是来激励自己,也做个笔记。
复数:
标准库支持一族复数的类型,就是complex类的方式。也可以单精度的float和双精度的double的复数。
complex的一个模板:
template<class scalar>class complex{
public:
complex (scalar re,scalar im);
//....
}
复数运用如:
template<class C> complex<C> pow(const complex<C>&,int);
void f(complex<float> fl,complex<double>db){
complex<long double> ld = fl + sqrt(db);//开方函数
db +=fl * 3;
fl = pow(1/fl,2);//计算x的y次幂
//...
}
向量运算:()
vector是保存值的一种机制,valarray适用数值计算。
valarray的模板::
template<.class T>class valarray{
//..
T& operator[] (size_t);//size_t为无符号的整形类型
//..
}
运用:
void f(valarray<double> &a1,valarray<double>& a2){
valarray<double> a = a1 * 3.14 + a2/a1;
a2 += a1*3.14;
a = abs(a);//计算绝对值
double b = a2[7];
//...
}
C++;类型和说明
将布尔值、字符、整数类型放到一起称为整型。
整型和浮点类型一起称为算术类型。
枚举和类一起称为用户定义类型。
int(char)可以转换字符为整型,一个字符是一个字节,但是8个二进制保存的是整数值0~255或者是-128~127,这就关于到char的选择。
C++提供了signed char 有符号(-128~127) unsigned char无符号(0~255),但是最常用的字符都在127之内。
枚举:
枚举范围,比如
1
2
3
|
enum
e1(dark,light) //范围(0:1)
enum
e2(a = 3,a = 9) //范围(0:15)
enum
e3(min = -10,max 1000000) //范围(-1048576,1048575)
|
范围计算:
如果枚举都是负数,范围是[0:2的k次幂 - 1],2的k次幂 表示能使所有枚举符位于此范围内的最小的2的幂。
一个枚举的sizeof就是能容纳其范围的整数的sizeof。
作用域:
被隐蔽的全局名字可以通过作用域解析运算符::去引用 例如:
1
2
3
4
5
6
|
int x;
void
f(){
int
x = 1; //遮蔽全局的x
::x = 2; //给全局的x赋值
} |
typedef 为前缀,它就是为类型声明一个新的名字,而不是声明一个指定类型的对象。例如:
1
2
3
|
typedef
char * Pchar; //声明char类型的一个新名称为Pchar
Pchar p1,p2; //
char
*p3 = p1;
|
看书进度太慢了。。。决定每隔几天发一次笔记吧。。
不然自己都受不了了。。。。