java - 这两个 new 的含义分别是什么?
黄舟
黄舟 2017-04-18 09:37:14
0
3
426
黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

membalas semua(3)
左手右手慢动作

C++: Bagaimana pula dengan new seperti yang dijanjikan

#include<iostream>

class test {
public:
    test() = default;
    test(int b) {
        a = b;
    }
    void A() {
        std::cout << a << std::endl;
    }
private:
    int a;
};


int main(int argc,char *argv[])
{
    test(1).A(); //没问题
    (*(new test(1))).A(); //内存泄露
    (new test(1))->A(); //上一行的语法糖
    return 0;
}

Sudah tentu tabiat pengaturcaraan ini sangat buruk

Dan new dan C++ bukanlah semudah yang anda fikirkan

Ty80

Kaedah java/c++ di atas untuk membina objek adalah berbeza, dan c++ mengembalikan objek sebenar, manakala java adalah sesuatu yang serupa dengan penunjuk Anda hanya memahaminya sebaliknya, dan c++Ada juga penggunaan yang serupa dengan java untuk mengembalikan penunjuk: new test(1)Apa yang dikembalikan dengan cara ini ialah penunjuk
~~Bukankah ini berlaku?
test(1).A();
(new test(1))->A(); // Sudah tentu ini tidak digalakkan kerana terdapat kebocoran memori

大家讲道理

C++ anda tidak menggunakan baharu

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan