c++ 封装 继承 多态

#include<iostream>
using namespace std;
class MyClass
{
public:
// 构造函数 初始化列表
MyClass(int x, double y) :m_x(x), m_y(y)
{
cout << "构造函数" << endl;


}
//拷贝构造函数
MyClass(const MyClass &m) :m_x(m.m_x), m_y(m.m_y)
{
cout << "拷贝构造" << endl;
}
MyClass &MyClass:: operator =(const MyClass& M)
{
m_x = M.m_x;
m_y = M.m_y;
cout << "赋值构造" << endl;
return *this;
}
virtual void say()
{
cout <<"x="<< m_x <<"y="<< m_y << endl;
}
~MyClass(){}

public:
int? m_x;
double m_y;
};


class SonClass:public MyClass
{
public:
SonClass(int x, double y) :MyClass(x, y)
{
}
~SonClass(){}
public:
void say()
{
cout << "我实现了子类的功能" << endl;
}
};
int main()
{
MyClass M(3, 3.8);
MyClass M1(M);
M1 = M;


SonClass S(3,4.8);
MyClass *p = &S;
p->say();
system("pause");
return 0;

}

猜你喜欢

转载自blog.csdn.net/d123454545/article/details/81490210