OOP HomeWork
This commit is contained in:
72
oop_hw5/hw4/code/main.cpp
Normal file
72
oop_hw5/hw4/code/main.cpp
Normal file
@@ -0,0 +1,72 @@
|
||||
#pragma once
|
||||
#include <iostream>
|
||||
#include <cstring>
|
||||
|
||||
using std::cin;
|
||||
using std::cout;
|
||||
using std::endl;
|
||||
|
||||
class A
|
||||
{
|
||||
public:
|
||||
A(int num) :data1(num) {}
|
||||
virtual ~A() {
|
||||
cout << " Destory A" << endl;
|
||||
}
|
||||
void f() const {
|
||||
cout << " Excute A::f() ";
|
||||
cout << " Data1=" << data1 << endl;
|
||||
}
|
||||
void g()
|
||||
{
|
||||
cout << " Excute A::g() " << endl;
|
||||
}
|
||||
A& operator=(A& x) {
|
||||
data1 = x.data1;
|
||||
return *this;
|
||||
}
|
||||
protected:
|
||||
int data1;
|
||||
};
|
||||
|
||||
class B : public A
|
||||
{
|
||||
public:
|
||||
B(int num1, int num2) :A(num1), data2(num2) {}
|
||||
virtual ~B() {
|
||||
cout << " Destory B" << endl;
|
||||
}
|
||||
void f() const {
|
||||
cout << " Excute B::f() ";
|
||||
cout << " Data1=" << data1;
|
||||
cout << " Data2=" << data2 << endl;
|
||||
}
|
||||
void f(int n) const {
|
||||
cout << " Excute B::f(int) ";
|
||||
cout << " n=" << n;
|
||||
cout << " Data1=" << data1;
|
||||
cout << " Data2=" << data2 << endl;
|
||||
}
|
||||
void h() {
|
||||
cout << " Excute B::h() " << endl;
|
||||
}
|
||||
B& operator=(B& x) {
|
||||
data2 = x.data2;
|
||||
//data1 = x.data1;
|
||||
this->A::operator=(x);
|
||||
return *this;
|
||||
}
|
||||
private:
|
||||
int data2;
|
||||
};
|
||||
|
||||
int main() {
|
||||
B b(1, 2);
|
||||
A* p = new B(1, 2);
|
||||
b.f();
|
||||
b.g();
|
||||
b.f(3);
|
||||
b.h();
|
||||
delete p;
|
||||
return 0;
|
||||
}
|
Reference in New Issue
Block a user