Зачем писать const в конструкторе

class World
{
public:
    World(const char* str);

private:
    char* string[255];
}

или

class World
{
public:
    World(char* str) const;

private:
    char* string[255];
}

И в чём отличие первого варианта от второго?


Ответы (1 шт):

Автор решения: Harry

Ну, так

World(char* str) const;

вы не напишете. А так -

World(char* str);

запросто, только вот при этом вы не сможете написать, например,

World w("Hello");

потому что строковый литерал приводится только к const char*, но не к char*.

Написать char* - по сути значит предупредить компилятор, что вы собираетесь менять эту строку.

→ Ссылка