cuốn sách gpt4 ai đã làm

c++ - 如何在另一个函数中使用一个函数指向对象的指针?

In lại Tác giả: Walker 123 更新时间:2023-11-28 03:29:19 29 4
mua khóa gpt4 Nike

我有一个指向我将在一个方法中使用的对象的指针。但我需要在另一种方法中再次使用相同的指针,如何在不声明为全局对象的情况下实现这一点。这是我动态竞标成就的一部分Shape 是父类,Rectangle 是子类。

int chính(){
switch (choice){
case 1:
create();
phá vỡ;
trường hợp 2:
process();
phá vỡ;
}
}

create(){
Shape *shape[3];
shape[0]=&objRectangle;
}

process(){
for(int i=0;i<3;i++){
shape->print; // I want to acchieve like this.
}

现在我不能这样做,因为形状对象在退出创建过程后就消失了。请协助。

câu trả lời hay nhất

我会像其他人一样建议让库为您管理内存。

为了能够使用动态绑定(bind)和std::vectơ,你应该开始分配(在你的main中)你的vector as

    std::vector shape(3);

这样做你可以访问你的动态绑定(bind) vector 条目

    shape[0]->process();

坏处是您仍然必须管理 vector 条目指向的内存(实际上它们只是 C 指针)。因此,你为什么不考虑做

    std::vector< std::tr1::shared_ptr< Shape > > shape(3);

?

这样做,smart pointer std::tr1::shared_ptr 将在指向的 Hình dạng 对象超出范围时为您释放内存。

此外,在此设置中,您应该将Hình dạng类型的对象分配为

     shape[0] = std::tr1::shared_ptr< Shape >(new Rectangle);

正确创建您需要的智能指针。

最后, vector shape 应该通过引用(或 hằng số 引用)传递给使用它的函数。

关于c++ - 如何在另一个函数中使用一个函数指向对象的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13037296/

29 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress