Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
1.2 kB
4
Indexable
Never
/*
 Inheritance

 // re usability
 Car  

 benzCar 
 

 */

#include <iostream>

class Car //base class / super class / parent class / master class
{
public:
	Car(int milage = 0, const char* name = "NA")//
	{
		m_nMilage = milage;
		std::size_t size = strlen(name) + 1;
		m_szName = new char[size];
		strcpy_s(m_szName, size, name);
		std::cout << "Car" << std::endl;
	}
	~Car()
	{
		if (nullptr != m_szName)
		{
			delete[]m_szName;
			m_szName = nullptr;
		}
		std::cout << "Car destructor" << std::endl;
	}
private:
	int m_nMilage;
	char* m_szName;	
};
class Benz : public Car //Derived class / sub class / child class / slave class
{
public:
	Benz(const char* audio = "NA")//
	{
		std::size_t size = strlen(audio) + 1;
		m_szAudioSystem = new char[size];
		strcpy_s(m_szAudioSystem, size, audio);
		std::cout << "Benz Car" << std::endl;
	}
	~Benz()
	{
		if (nullptr != m_szAudioSystem)
		{
			delete[]m_szAudioSystem;
			m_szAudioSystem = nullptr;
		}
		std::cout << "Benz Car destructor" << std::endl;
	}
private:
	char* m_szAudioSystem;
};

auto main()->int
{
	//Car* car = new Car(20, "ABC");
	Benz* benz = new Benz("JBL");

	if (nullptr != benz)
	{
		delete benz;
		benz = nullptr;
	}
}