前端学C++

327 阅读2分钟

这是我参与11月更文挑战的第4天,活动详情查看:2021最后一次更文挑战

更多类型

Array与String

除了基本类型以外,其他的类型被称为Compound Types,即由其他类型构建的类型。

对于Array,C++的数组类型要求数组所有元素类型相同(可为floatint等),其声明语义如下:typeName arrayName[arraySize];

一些数组操作的细节:

int test[3] {1,2,3}  
int copy[3] \\
copy = test \\无效操作
int zeros[100] {0} \\初始化一个全零数组
unsigned int counts[10] = {}; \\C++11 后初始化一个全零数组

StringArray都可以用来表示字符串类型,如char str[6] = 'newbee'这样的语句可以用来初始化一个字符串,String与简单使用字符串数组的区别是需要引入<string>头文件,同时支持更灵活的操作:

string str1; 
str2 = "C++"; 
str1 = str2; \\有效操作,属于对象赋值
str3 = str1 + str2;
str1 += str2; \\字符串拼接

struct

稍对C语言有所了解的人都知道结构体(即Struct)的存在,结构体的声明也很简单:

struct inflatable
{ 
    char name[20]; 
    float volume; 
    double price; 
};

inflatable guest = 
{ 
    "Glorious Gloria", // name 
    1.88, // volume
    29.99 // price
}

可以看到,结构体的使用类似于Typescript中的interface(这样说可能有点奇怪,毕竟Typescript才是学生)

union

union one4all { 
    int int_val; 
    long long_val; 
    double double_val; 
};

Union长得像Struct,但是特性不同,上面的这个union可以储存int,long,double三种类型的数据,但是每次只能储存一种,后面的赋值会“挤掉”前面的值,属于学一个忘一个。

enum

又是一个在Typescript里见过的类型,直接上点代码,方便理解这个类型

enum bits{one = 1, two = 2, four = 4, eight = 8};
enum bigstep{first, second = 100, third};  
\\等同于enum bigstep{first=0, second = 100, third=101};

enum意为enumerate,顾名思义,结合上面的代码所示,在不明确初始化enum元素的时候,其元素根据前面地元素自增。enum在C++中的作用主要是将一些带有意义的数字更有语义地表达,增强可读性。