Хотя Ansible может работать в Cygwin, обратите внимание, что он официально не поддерживается, и похоже, что это будет в ближайшем будущем.
Примечание. Бег с управляющей машины Windows НЕ является целью проекта. Не обращайте внимания на эту функцию, поскольку она ограничивает, какие технологии, функции и код мы можем использовать в основном проекте в будущем. Для управления хостами Windows потребуется компьютер управления Linux.
Cygwin не поддерживается, поэтому, пожалуйста, не задавайте вопросов о Ansible running from Cygwin.
blockquote>В качестве альтернативы рассмотрим запуск виртуальной машины Linux на вашем хосте Windows и использование этого в качестве вашего контроллера Ansible.
То, что вы там написали, должно работать нормально. В C ++, если вы вызываете a
в b
и оба являются методами экземпляра некоторого класса A
, вам не нужно его квалифицировать. Оба a
и b
находятся в области действия друг друга.
В одном случае у вас могут быть немного неожиданные результаты. То есть, если A::a()
является виртуальным, obj
действительно имеет тип DerivedFromA
, а DerivedFromA :: a переопределяет A::a
. В этом случае простой вызов a();
или более подробный this->a();
будет вызывать не A :: a, а DerivedFromA :: a ().
Теперь, это, вероятно, предназначено, так как класс A объявил a () как виртуальный. Но если вы действительно не имеете это в виду, вы можете игнорировать виртуальное, записав вызов либо как
void A::b()
{
A::a(); // or
this->A::a(); //Both ignore the virtual-ness of a()
}
То, что у тебя есть, должно работать нормально. Вы можете использовать «this», если хотите:
void A::b() {
this->a();
do_stuff;
}
или
void A::b() {
this->A::a();
do_stuff;
}
или
void A::b() {
A::a();
do_stuff;
}
, но то, что у вас должно работать, также: ]
void A::b() {
a();
do_stuff;
}
Похоже, код, который вы написали в своем блоке, будет работать нормально. Просто убедитесь, что в вашем классе правильно определены методы a () и b ().