前言:
参考:B站UP主鱼C_小甲鱼<C++快速入门>
代码调试平台:VS2017,调试成功。
问题描述:
问题描述:强制类型转换
代码实现:
#include <iostream>
#include <string>
using namespace std;
class Company
{
public:
Company(string theName, string product);
virtual void printInfo();
protected:
string name;
string product;
};
class TechCompany :public Company
{
public:
TechCompany(string theName, string product);
virtual void printInfo();
};
Company::Company(string theName, string product)
{
name = theName;
this->product = product;
}
void Company::printInfo()
{
cout << "这个公司的名字是:" << name << ",正在生产" << product << "\n";
}
TechCompany::TechCompany(string theName, string product) :
Company(theName, product)
{
}
void TechCompany::printInfo()
{
cout <<name<< "公司大量生产了" << product << ".\n";
}
int main()
{
Company *company = new TechCompany("APPLE", "Iphone");
//TechCompany *techcompany =(TechCompany*) company; //强制转换,法一
TechCompany *techcompany =dynamic_cast<TechCompany*>(company); //法2
techcompany->printInfo();
delete company;
company = NULL;
techcompany = NULL;
return 0;
}