Я начинаю в C++ и пытаюсь создать новый экземпляр класса
foo* a= new foo(1);
*(a).kCreateThread();
и я получаю следующую ошибку
Ошибка C2228: слева от '.kCreateThread' должен быть класс /struct/union
Что не так?
То, что вы написали, эквивалентно
*((a).kCreateThread());
Вы должны использовать
a->kCreateThread();
или
(*a).kCreateThread();
Эти последние два эквивалентны.
Сделайте это так: a-> kCreateThread();
(*a).kCreateThread();
, Ваш синтаксис пытается вызвать a.kCreateThread () и разыменовать его возвращаемое значение, в то время как мой сначала разыменовывает указатель a, а затем пытается вызвать kCreateThread с ним. Это потому, что * имеет более низкий приоритет, чем.