#include <iostream>
#include <string>
class Company
{
public:
Company(std::string theName);
virtual void printInfo();
protected:
std::string name;
};
class TechCompany : public Company
{
public:
TechCompany(std::string theName, std::string product);
virtual void printInfo();
private:
std::string product;
};
Company::Company(std::string theName)
{
name = theName;
};
void Company::printInfo()
{
std::cout << "this company's name is " << name << std::endl;
};
//TechCompany::TechCompany(std::string theName, std::string theproduct) : Company(theName)
//{
// product = theproduct;
//{
TechCompany::TechCompany(std::string theName, std::string product) : Company(theName)
{
this->product = product; // this指针:指向当前的类生成的对象的指针,所以就可以用 -> 区分属性 和 函数参数值了。如果不存在二义性,就不必使用this。
};
void TechCompany::printInfo()
{
std::cout << "this company's name is " << name << " his product is " << product << std::endl;
}
int main()
{
Company *company = new Company("Apple");
company->printInfo();
delete company;
company = NULL;
company = new TechCompany("Apple", "Iphone");
company->printInfo();
delete company;
company = NULL;
}
/* vim: set ts=4 sw=4 sts=4 tw=100 */