正常情况下对象一经声明就为对象的成员分配存储空间,并调用其构造函数进行初始化,对象生存期结束后自动调用析构函数,并释放对象占用的空间。缺点:造成内存紧张
解决途径:先声明这些对象,在需要这些对象时才分配存储空间和调用构造函数,使用完之后可以立即调用析构函数释放其内存空间。这一途径使用C++语言指向对象的指针。
先定义一个类
class prince{
public:
void setX(int y){//成员函数
x=y;}
int getX(){// 成员函数
return x;}
private:
int x;
}
对象指针(声明的指针类型是类)
svo::FrameHandlerMono* vo_
内存分配:仅仅为这个指针分配了存放指针值的存储空间,并没有分配FrameHandlerMono对象的内存空间。
可以用&运算符取一个对象的地址,然后赋值给一个对象指针:
FrameHandlerMono p;
vo_ = &p;
这时,对象指针vo_指向对象p,可以使用运算符“->”访问这个对象的共有数据成员或成员函数,如:
vo_ -> getX();
对象的动态创建new与撤销delete
svo::FrameHandlerMono* vo_//声明一个对象指针
vo_ = new svo::FrameHandlerMono(cam_);//动态创建对象
delete vo_;//析构删除指针