1.1.23. (C++ 语言命令详解(第二版))

C++语言类型转换命令及RTTI原理
博客介绍了C++语言的类型转换命令,包括const_cast、dynamic_cast、reinterpret_cast和static_cast的功能及使用注意事项,指出这些是扩展ansi特征,早期版本不支持。还提到了RTTI原理,即在虚函数表中放一个指向typeinfo结构体的指针。

1.1.1.       (C++ 语言命令详解(第二版))

const_cast  const类型变量,转换为非const  .volatile转换为非volatile

dynamic_cast (RTTI支持)如果实际类型与目的类型不一致(一致是指,目的对象与指针的实际对

象一样,或者目的对象是指针对象的父对象),则返回NULL (0)

       dynamic_cast <type*> expr //expr必须含一虚函数,否则编译出错

                     // 有些编译器须打开标志才能用,vc /GR

reinterpret_cast  提示编译器不要进行值的转换,只是把地址互相复制

static_cast 相当与不用,编译器进行值的转换,指针转换只能从一种类型到void*,反过来不行,

 

4条是扩展ansi特征,在早期c++版本中不支持

属于模版

 

 

RTTI原理:vtable(虚函数表)中放一个指向typeinfo结构体的指针

2025-06-12 16:58:22.896 ERROR 23400 --- [eate-1657218305] com.alibaba.druid.pool.DruidDataSource : create connection SQLException, url: jdbc:postgresql://27.221.126.75:25308/sif, errorCode 0, state 08001 org.postgresql.util.PSQLException: The connection attempt failed. at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:326) ~[huaweicloud-dws-jdbc-8.3.0.jar:na] at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49) ~[huaweicloud-dws-jdbc-8.3.0.jar:na] at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:259) ~[huaweicloud-dws-jdbc-8.3.0.jar:na] at org.postgresql.Driver.makeConnection(Driver.java:447) ~[huaweicloud-dws-jdbc-8.3.0.jar:na] at org.postgresql.Driver.connect(Driver.java:306) ~[huaweicloud-dws-jdbc-8.3.0.jar:na] at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:156) ~[druid-1.1.23.jar:1.1.23] at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218) ~[druid-1.1.23.jar:1.1.23] at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:150) ~[druid-1.1.23.jar:1.1.23] at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1646) ~[druid-1.1.23.jar:1.1.23] at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1710) ~[druid-1.1.23.jar:1.1.23] at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2774) ~[druid-1.1.23.jar:1.1.23] Caused by: java.io.EOFException: null at org.postgresql.core.PGStream.receiveChar(PGStream.java:445) ~[huaweicloud-dws-jdbc-8.3.0.jar:na] at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:611) ~[huaweicloud-dws-jdbc-8.3.0.jar:na] at org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:157) ~[huaweicloud-dws-jdbc-8.3.0.jar:na] at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:223) ~[huaweicloud-dws-jdbc-8.3.0.jar:na] ... 10 common frames omitted
06-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值