Пусть говорят, что я имею этот класс:Как пример Класс из заголовка, который выбирает правильный CTOR?
class MyClass
{
private:
bool mIsMeter = false;
public:
MyClass(bool isMeter = false) {
mIsMeter = isMeter;
}
~MyClass() {
}
};
Теперь в myClasses.h
, я пишу:
MyClass mMyClass;
это экземпляр класса с использованием CTOR по умолчанию в стеке (в моем примере, используя isMeter = false
). Что делать, если я хочу (оттуда) инициализировать класс, проходящий true
в качестве параметра?
я мог бы сделать это в myClasses.cpp
, но чем она будет создавать первый стек oversion из mMyClass
с false
, а затем повторно выделить его с помощью mMyClass = MyClass(true)
.
Не пустая трата ресурса? Не можете просто запустить его из заголовка?
Я не могу написать MyClass mMyClass (true); в файле заголовка. Он говорит «Ошибка, ожидаемый идентификатор типа» – markzzz
@paizza. Затем вы помещаете его в неправильное место. Поскольку вы не указали [mcve] в своем вопросе, мне трудно сказать больше. – Angew
Вот вы: http://coliru.stacked-crooked.com/a/e31a2ef96ae46430 Я не могу делать 'MyClass mMyClass (true);', только 'MyClass mMyClass;' – markzzz