• Effective C++ 12代码


    #include <iostream>
    #include <string>
    using namespace std;
    
    class Phone
    {
    public:
    	Phone(string name);
    	virtual ~Phone(){cout<<"Phone destory"<<endl;}
    	virtual void print();
    	string GetName(){return m_name;}
    private:
    	string m_name;
    };
    Phone::Phone(string name)
    : m_name(name)
    {
    	cout<<"Phone create"<<endl;
    }
    void Phone::print()
    {
    	cout<<"phone name:"<<m_name<<endl;
    }
    
    class Iphone:public Phone
    {
    public:
    	Iphone(string name, bool IsSiri = 1);
    	~Iphone();
    	Iphone(const Iphone& rhs);
    	Iphone& operator=(const Iphone& rhs);
    	virtual void print();
    private:
    	bool m_bIsSiri;
    };
    Iphone::Iphone(string name, bool IsSiri)
    :Phone(name)
    , m_bIsSiri(IsSiri)
    {
    	cout<<GetName() + " create"<<endl;
    }
    Iphone::Iphone(const Iphone& rhs)
    :Phone(rhs)	//base的copy 函数
    {
    	cout<< "copy func"<<endl;
    	m_bIsSiri = rhs.m_bIsSiri;
    }
    Iphone& Iphone::operator=(const Iphone& rhs)
    {
    	cout<< "operator= func"<<endl;
    	Phone::operator=(rhs);	//base的赋值操作
    	m_bIsSiri = rhs.m_bIsSiri;
    	return *this;
    }
    Iphone::~Iphone()
    {
    	cout<<GetName() + " destory"<<endl;
    }
    void Iphone::print()
    {
    	cout<<"i am"<<" " + GetName();
    	if (m_bIsSiri)
    	{
    		cout<<" and i have siri"<<endl;
    	}
    	else
    	{
    		cout<<" and i have not siri"<<endl;
    	}
    }
    int main()
    {
    	Phone* pPhone = new Iphone("iphone");
    	pPhone->print();
    	delete pPhone;
    	
    	pPhone = new Iphone("HTC", 0);
    	pPhone->print();
    	delete pPhone;
    	pPhone = NULL;
    
    	Iphone iphone("iphone");
    	Iphone HTC("HTC");
    	HTC = iphone;//operator=
    	HTC.print();
    	Iphone samsung(HTC);//copy构造函数
    	samsung.print();
    	return 1;
    }
    

      

  • 相关阅读:
    编程之美---求数组中最长递增子序列
    编程之美----子数组的最大乘积
    编程之美----寻找数组中的最大值和最小值
    编程之美---找符合条件的整数
    编程之美----最大公约数问题
    编程之美----1的数目
    编程之美----寻找发帖“水王”
    C语言 |= &= 位运算
    整型数类型定义
    extern使用方法总结!(转)
  • 原文地址:https://www.cnblogs.com/2012harry/p/3972460.html
Copyright © 2020-2023  润新知