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

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

répondre à tous(3)
左手右手慢动作

C++ : Et new comme promis

#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;
}

Bien sûr, cette habitude de programmation est très mauvaise

Et les new et du C++ ne sont pas aussi simples que vous le pensez

Ty80

Les java/c++ méthodes de construction d'objets ci-dessus sont différentes, et c++ renvoie un objet réel, tandis que java est quelque chose de similaire à un pointeur. Vous le comprenez simplement dans l'autre sens, et c++Il y a. aussi un usage similaire à java pour renvoyer un pointeur : new test(1)Ce qui est renvoyé de cette manière est un pointeur
~~N'est-ce pas le cas ?
test(1).A();
(new test(1))->A(); // Bien sûr, cela n'est pas recommandé car il y a une fuite de mémoire

大家讲道理

Votre C++ n'utilise pas new

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal