026类和类的派生_子类和父类之间的转换
#include<iostream>
#include<cstdlib>
#include<string>
#include<vector>
using namespace std;
class Human
{
public:
int age;
string name;
public:
Human();
Human(int age, string name);
~Human()
{
cout << "Human析构函数" << endl;
}
Human(const Human&TemHuman)
{
cout << "这是拷贝构造函数执行" << endl;
this->age = TemHuman.age;
this->name = TemHuman.name;
}
Human&operator=(const Human&TemHuman)
{
this->age = TemHuman.age;
this->name = TemHuman.name;
return *this;
}
};
class Man :public Human
{
public:
Man();
~Man()
{
cout << "man的析构函数执行" << endl;
}
public:
};
class Woman :public Human
{
public:
Woman();
public:
~Woman()
{
cout << "Woman析构函数执行" << endl;
}
};
Woman::Woman()
{
cout << "这是woman的构造函数" << endl;
}
Human::Human()
{
cout << "Human默认构造函数" << endl;
}
Human::Human(int age, string name)
{
this->age = age;
this->name = name;
}
Man::Man()
{
cout << "Man类的默认构造函数" << endl;
}
class A
{
public:
A(int value,string myStr):valueA(value),str(myStr)
{
;
}
private:
int valueA;
string str;
};
class B:public A
{
public:
B(int i,string myStr,int j):A(i,myStr),valueB(j)
{
;
}
private:
int valueB;
};
class grandFather{};
class Father:public grandFather{};
class Son:public Father{};
class Base final
{
};
int main(void)
{
Man myMan1;
Human *p_human = new Man;
B b(12,"jisuanji" ,34);
cout << sizeof(grandFather) << endl;
cout << sizeof(Father) << endl;
cout << sizeof(Son) << endl;
Human *p_human02 = new Man;
Human&Human_reference = *p_human02;
Man man03;
Human human03(man03);
human03 = man03;
system("pause");
return 0;
}