#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 */