四种类型转换

  • static_cast<A> 强制类型转换父类向子类转换的时候不检查,所以可能不安全,但最常用

  • dynamic_cast<A> 父类向子类转换的时候检查是否父类有虚函数,有才可以转换否则抛出错误

  • reinterpret_cast<A> 将一种类型的指针转换成另外一种,不做类型检查,很少使用

  • const_cast<A>(a) 若a原来是const的则去掉const,常用的情况是说一个函数声明是非const的,我们需要传进去一个const变量,则用const_cast去掉const限定

基本类型变量之间的转换

string----->char

char a = b[0];

char-------->string

char a = 'a';
string b;

b.push_back(a);

string----->char *

string a("abc");

a.c_str(); //以null结尾的c风格字符串
a.data();  //非null结尾的字符串

char*------>string

char* a = "abc";

string b(a);

string------>double/int/float

string a("123")

stoi(a);
stof(a);
stod(a);

double/int/float------->string

int a;
double a;
float a;

to_string(a);

results matching ""

    No results matching ""