Я рискну утверждения очевидного: Вы вызываете функцию, если она определяется в базовом классе, это автоматически доступно в производном классе (если это не private
).
, Если существует функция с той же подписью в производном классе, можно снять неоднозначность его путем добавления имени базового класса, сопровождаемого двумя двоеточиями base_class::foo(...)
. Необходимо отметить, что в отличие от Java и C#, C++ делает не , имеют ключевое слово для "базового класса" (super
или base
) начиная с поддержек C++ множественное наследование , который может привести к неоднозначности.
class left {
public:
void foo();
};
class right {
public:
void foo();
};
class bottom : public left, public right {
public:
void foo()
{
//base::foo();// ambiguous
left::foo();
right::foo();
// and when foo() is not called for 'this':
bottom b;
b.left::foo(); // calls b.foo() from 'left'
b.right::foo(); // call b.foo() from 'right'
}
};
Кстати, Вы не можете произойти непосредственно из того же класса дважды, так как не будет никакого способа относиться к одному из базовых классов по другому.
class bottom : public left, public left { // Illegal
};
Ожидаемый уже был упоминается для использования через Tcl, но его также можно использовать без Tcl, рассматривая его как библиотеку C и вызывая API , описанный здесь
Вы хотите вызвать forkpty (). На странице руководства:
#include
/ * для openpty и forkpty * / pid_t forkpty (int * amaster, char * name, struct termios * termp, struct winsize * winp);
Ссылка на -lutil.
Функция forkpty () объединяет openpty (), fork () и login_tty () с создать новый процесс, работающий в псевдотерминале. Описание файла tor главной стороны псевдотерминала возвращается в мастере, и имя файла подчиненного устройства, если оно не равно NULL. Срок и Параметры winp, если не NULL, будут определять атрибуты терминала и размер окна подчиненной стороны псевдотерминала.
Ваш родительский процесс общается с дочерним процессом, читая и записывая из файлового дескриптора, который forkpty хранит в "мастере" - это называется главным псевдотерминальным устройством. Ребенок просто разговаривает с stdin и stdout, которые подключены к подчиненному псевдотерминальному устройству.
Есть пакет под названием "expect", который вы должны использовать. Он использует язык сценариев tcl (произносится щекотка).