首页 > 代码库 > c++第十四章-(类型强转换)
c++第十四章-(类型强转换)
类型强转换有2种。
class Company{public: Company(std::string theName,std::string theProduct); virtual void printInfo(); protected: std::string name; std::string product;};Company::Company(std::string theName,std::string theProduct){ this->name = theName; this->product = theProduct;}void Company::printInfo(){ std::cout << "这个公司的名字叫:" << name <<"正在生产" << product << std::endl;}class TechCompany : public Company{public: TechCompany(std::string theName,std::string theProduct); virtual void printInfo();};TechCompany::TechCompany(std::string theName,std::string theProduct) : Company(theName,theProduct){ }void TechCompany::printInfo(){ std::cout << name << "公司大量生产了" << product << "这款产品!\n";}int main(int argc, const char * argv[]){ /* Company *company = new TechCompany("APPLE","IPHONE"); //类型强转 TechCompany *tecCompany = (TechCompany *)company; */ Company *company = new Company("APPLE","IPHONE"); //更安全的类型强转,转换失败返回NULL TechCompany *tecCompany = dynamic_cast<TechCompany *>(company); if (tecCompany != NULL) { tecCompany->printInfo(); } else { std::cout << "转换失败\n"; } delete company; company = NULL; tecCompany = NULL; return 0;}
控制台输出结果为:
APPLE公司大量生产了IPHONE这款产品!
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。