相关疑难解决方法(0)

我为什么要使用指针而不是对象本身?

我来自Java背景,并开始使用C++中的对象.但是我遇到的一件事是人们经常使用指向对象的指针而不是对象本身,例如这个声明:

Object *myObject = new Object;
Run Code Online (Sandbox Code Playgroud)

而不是:

Object myObject;
Run Code Online (Sandbox Code Playgroud)

或者,不要使用函数,比如说testFunc():

myObject.testFunc();
Run Code Online (Sandbox Code Playgroud)

我们要写:

myObject->testFunc();
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚为什么我们这样做呢.我认为它与效率和速度有关,因为我们可以直接访问内存地址.我对吗?

c++ pointers c++11

1532
推荐指数
12
解决办法
30万
查看次数

C++ 0x unique_ptr取代scoped_ptr取得所有权?

我曾经写过这样的代码:

class P {};

class Q: public P {};

class A {
    // takes ownership
    A(P* p): p_(p) {}

    scoped_ptr<P> p_;
};

A a(new Q);
Run Code Online (Sandbox Code Playgroud)

使用C++ 0x,我应该将A类重写为:

class A {
    // takes ownership
    A(unique_ptr<P>&& p): p_(p) {}

    unique_ptr<P> p_;
};
Run Code Online (Sandbox Code Playgroud)

c++ smart-pointers c++11

19
推荐指数
2
解决办法
2万
查看次数

标签 统计

c++ ×2

c++11 ×2

pointers ×1

smart-pointers ×1