|
发表于 2019-11-1 14:14:46
|
显示全部楼层
#include <iostream>
#include <string>
#include <climits>
// new 是从内存池(堆)中申请一块内存 delete 是将申请的内存删除 必须成对出现 并将指针NULL
class Company
{
public://都可以调用
Company(std::string theName);
virtual void printInfo();//打印信息
//private://只用本类才能调用
protected://只用本类和本类派生出来的类才能调用
std::string theName;
};
class TechCompany : public Company
{
public:
TechCompany(std::string theName,std::string product);
virtual void printInfo();
//private:
protected:
std::string product;
};
Company::Company(std::string theName)
{
this->theName=theName;
}
void Company::printInfo()//打印信息 具体类的方法实现在外部不用virtual
{
std::cout<<"这个公司的名字叫"<<theName<<std::endl;
}
TechCompany::TechCompany(std::string theName,std::string product) :Company(theName)
{
this->product=product;//产品的名字
//theName公司的名字继承基类 :Company(theName)
}
void TechCompany::printInfo()//打印信息 具体类的方法实现在外部不用virtual
{
std::cout<<"这个公司的名字叫"<<theName<<"标志性产品名称"<<product<<std::endl;
}
int main()
{
Company *CompanyHogen=new Company("woyunjiqiren");//申请一个Company类型的指针 指向被申请得到的首地址赋值给*CompanyHogen
CompanyHogen->printInfo();
delete CompanyHogen;//删除刚刚申请的内存 防止内存泄露
CompanyHogen=NULL;//同时必须将指针赋值为NULL 这样在访问这个指针时什么都不指向 &解析地址时会报错
TechCompany *TechCompanyHogen=new TechCompany("苹果公司","iphone");
TechCompanyHogen->printInfo();
delete TechCompanyHogen;//删除刚刚申请的内存 防止内存泄露
TechCompanyHogen=NULL;//同时必须将指针赋值为NULL 这样在访问这个指针时什么都不指向 &解析地址时会报错
system("pause");
return 0;
} |
|