读林锐博士的<高质量程序设计c/c++>关于数组指针的使用
注意点:
1.多态和指针算术运算不能混合使用,数组操作总会涉及到指针运算,因此多态和数组不应该混合运用
2.不要在数组中直接存放多态对象,而是用基类指针或者基类的智能指针代替。
附上代码:
#include <iostream>
using namespace std;
struct Point{
Point(int x,int y):m_x(x),m_y(y){}
int m_x;
int m_y;
};
ostream& operator<<(ostream &os,const Point& p)
{
cerr<<"\n{\tHorizontalOrdinate="<<p.m_x\
<<"\n\tVerticalOrdinate ="<<p.m_y<<"\n}\n";
return os;
}
class Shape{
Point m_origin;
public:
Shape():m_origin(0,0){}
explicit Shape(const Point& origin):m_origin(origin){}
virtual ~Shape(){cerr<<"Shape::~Shape()"<<endl;}
Point GetOrigin()const{return m_origin;}
virtual void Draw()const{
cerr<&
C++中多态性与动态数组的应用技巧

本文介绍了在C++编程中如何在考虑多态性的情况下正确使用动态数组。强调了多态和指针算术运算不兼容的原则,并提出避免在数组中直接存储多态对象,而应使用基类指针或智能指针的建议。同时,提供了相关代码示例。
最低0.47元/天 解锁文章
1668

被折叠的 条评论
为什么被折叠?



