ue4开发之C++基础积累

  1)auto 类型说明符

  分析:其让编译器通过初始值来推算分析表达式所属的类型,注意!auto定义的变量必须有初始值!如,auto item1;(×) auto item2 = val1 + val2;(√)  另外auto也能在一条语句中声明多个变量,但要求语句中所有变量的初始基本数据都必须一样,如下:

  auto i = 0, *p = &i; (√,auto <==> int)

  auto sz = 0, pi = 3.14;(×,sz<==>int,pi<==>float)

  【补:复合类型(引用/指针),常量和auto

  ①当引用被用作auto初始值,真正参与初始化实质是引用对象的值。 如 int i = 0,&r = i;  auto a = r;// a 是一个整数

  ②auto一般会忽略顶层const,保留底层const,如:

  

  又引用类型的auto,

  

  谨记一点!:符号&和*是属于修饰某个声明符,而非基本数据类型的一部分,则初始值必须是同一种类型

  

  】

  2)new 和 数组

  int *p = new int[42];  // new请求分配一定数目的对象的数组,成功后返回指向第一个对象的指针。该例中方括号中的大小必须是整型,但不必是常量。同理,可以用类型别名的方式定义,

  

  new T[]分配的内存为“动态数组”。当用new分配一个数组时,返回得到的是一个数组元素类型的指针,而不是一个数组类型,故不能对动态数组调用begin或end,也不能使用for语句来循环遍历。 数组初始化的规则如下:

  

  另外,动态分配一个空数组是ok的。如 char *cp = new char[0]; //正确,new返回一个合法的非空指针,以保证与new返回的其他任何指针都不同,但cp不能解引用

  释放动态数组,大家已经都知道new - delete 要成对出现,则这里也是用delete,但特殊的是 指针前要加上一空方括号对 []

  

  销毁pa指向的数组中的元素,并释放对应内存,按逆序销毁,即最后一个元素先销毁,然后倒数第二个。

  注意!:在delete一个动态数组指针时忘记方括号,或delete一个单一对象的指针时使用了方括号,编译器很可能不会给出警告,但在程序执行过程中会没有任何警告情况下发生异常

  简单记忆,关键还是“ 成对 ”,即new 时带了 [] ,delete也对应带上 [] 就行(即使是类型别名定义也不例外),如:

  

  3)标准库类型 string

  string表示可变长的字符序列,其定义在命名空间std中,使用前必须包含对应的头文件。因此用string关键字定义时要码:

#include <sting>
using std::string;

  定义和初始化 string 对象(包括直接初始化和拷贝初始化)

  

  

  4)

posted on 2018-09-03 17:13  *码独行侠  阅读(709)  评论(0)    收藏  举报

导航