物联网/嵌入式工程师
重磅升级:新增硬件电路设计与实战,让你软硬通吃,同级PK无敌!行业风口、政策倾斜,新晋热门高薪不内卷!0基础一站式就业完整路径,抢占先发优势!
例如,我们可以把 int 转成 long long。
int a = 100;
long long b = a;
由于是小类型转大类型,所以这里使用隐式转换就可以了。
再比如,我们可以把 long long 转成 int。
long long a = 100;
int b = (int)a;
这里是大类型转小类型,所以要显式转换。这种转换可能会损失精度,是需要我们程序员掌控的。
同样,类之间也可以相互转换。类的转换主要是在父类和子类之间的转换。
首先,我们先来看看父类和子类之间的逻辑关系
class Staff { public: std::string name; int age; }
class Coder : public Staff { public: std::string language; };
这里有两个类,一个类是 Staff 员工类,里面包括两个属性,name 和 age。Coder 程序员类继承自员工类,所以其包含了 Staff 的属性,除此之外,还有一个 language 属性,表示其使用的编程语言。
我们其实可以把一个员工强行转化成程序员,但是这就有可能出问题,就如同我们把 long long 转成 int 就有可能出现问题。
int main(int argc,char **argv)
{
Coder * coder = new Coder();
Staff * staff = coder; // 隐式转换就可以
Coder * coder = (Coder *)staff; // 必须显式转换
return 0;
}
请验证,完成请求
由于请求次数过多,请先验证,完成再次请求
打开微信扫码自动绑定
绑定后可得到
使用 Ctrl+D 可将课程添加到书签
举报