Como simplificar seu código em C++

Depois de conhecer essas duas palavras mágicas do C++ 11 você não vai parar mais de usar!

default

A keyword “default” era uma palavra reservada somente para usar no switch, que funcionava como else, ou seja, se o input de dado não atender nenhuma condição dos cases será processado o bloco “default” do switch.

Mas no C++ 11 essa palavra pode ser usado para outra coisa, como podemos ver nos exemplos abaixo:

sem default
class object {
    public:
        object(){}
        virtual ~object(){}
};
com default
class object {
    public:
        object() = default;
        virtual ~object() = default;
};

Entendeu?, ao invés de implementar um escopo vazio para construtor e destrutor, você simplesmente atribui a função a palavra reservada “default”.

delete

A keyword “delete” é uma função pode ser sobrecarregada e que também faz a desalocação de um espaço de memória, mas no C++ 11 temos uma nova funcionalidade para ela, conforme o exemplo abaixo:

class object {
    public:
        object() = default;
        virtual ~object() = default;
    
    public:
        void* operator new(std::size_t) = delete;
        void* operator new[](std::size_t) = delete;
};

int main(){
    object *p = new object(); // not work
    return 0;
}

Ou seja, ninguém poderá chamar a função new para classe object.

Tem alguma dúvida ou sugestão? Deixe nos comentários!

Deixe um comentário