myClass* m;
- это просто указатель на тип myClass
, который не указывает на какой-либо действительный объект, разыменование такого указателя равно Неопределенное поведение .
Неопределенное поведение означает, что ваша программа недействительна и может показаться, что она работает или может привести к сбою или может показывать странное поведение, все безопасные ставки отключены. Так что если ваша программа работает, это не значит, что она безопасна и всегда будет работать.
Чтобы написать действительную программу, вам нужно будет указать указатель на действительный объект.
Например:
myClass obj;
myClass*m = &obj;
Во втором случае:
myClass n(7);
Создает объект n
типа myClass
, вызывая конструктор myClass
, который принимает один аргумент типа int
.
Это правильный способ создания объекта.