cpp notes - nonelittlesong/study-cpp GitHub Wiki

cpp notes

1. string

#include <string>
using namespace std;

长度

// c++
int len1 = str1.size();
// c
int len2 = strlen(str2);

string类IO

2. struct

union

共用体的长度为其最大成员的长度。

enum

enum可以自动转int
int不能自动转enum

enum spectrum {red, orange, yellow, green, blue, violet, indigo, ultraviolet);
spectrum band;
int color = blue;
band = 3; // invalid
color = 3 + red;

强制类型转换

band = spectrum(3); // valid
band = spectrum(40003); // undefined

可以创建多个值相同的枚举量

enum {zero, null = 0, one, numero_uno = 1}

取值范围

上界m = min{m>max, m = 2^i}
下界n = min > 0? 0 : max{n<min, n = -2^i}

3. Pointer

声明

// 下面的声明创建一个指针p1和一个int变量p2
int *p1, p2; // 或int* p1, p2;

给指针赋整值

int *pt;
pt = (int *)0xB8000000;

new/delete

  • new从被称为堆(heap)的内存区域分配内存。
  • 不要释放已释放的内存(undefined)。
  • 只能delete空指针由new分配的内存
  • 不能使用sizeof运算符得到new[]动态分配的数组的大小。(得到指针本身大小)

4. Class

内联方法:
在类声明中定义方法,等价于,用原型替换定义,在类声明后面inline方法定义。

⚠️ **GitHub.com Fallback** ⚠️