Запускаем внешнее приложение:
#include <windows.h>
#include <stdio.h>
int main() {
system("cmd");
exit(0);
}
Запускаем внешнее приложение:
#include <windows.h>
#include <stdio.h>
int main() {
system("cmd");
exit(0);
}
Мы рассмотрели, как объявлять переменные (глава 3), как писать выражения (глава 4) и инструкции (глава 5). Здесь мы покажем, как группировать эти компоненты в определения функций, чтобы облегчить их многократное использование внутри программы. Мы увидим, как объявлять и определять функции и как вызывать их, рассмотрим различные виды передаваемых параметров и обсудим особенности использования каждого вида. Мы расскажем также о различных видах значений, которые может вернуть функция. Будут представлены четыре специальных случая применения функций: встроенные (inline), рекурсивные, написанные на других языках и объявленные директивами связывания, а также функция main(). В завершение главы мы разберем более сложное понятие – указатель на функцию.
Функцию можно рассматривать как операцию, определенную пользователем. В общем случае она задается своим именем. Операнды функции, или формальные параметры, задаются в списке параметров, через запятую. Такой список заключается в круглые скобки. Результатом функции может быть значение, которое называют возвращаемым. Об отсутствии возвращаемого значения сообщают ключевым словом void. Действия, которые производит функция, составляют ее тело; оно заключено в фигурные скобки. Тип возвращаемого значения, ее имя, список параметров и тело составляют определение функции.Вот несколько примеров:
inline int abs( int obj )
{
// возвращает абсолютное значение iobj
return( iobj < 0 ? -iobj : iobj );
}
inline int min( int p1, int p2 )
{
// возвращает меньшую из двух величин
return( pi < p2 ? pi : p2 );
}
int gcd( int vl, int v2 )
{
// возвращает наибольший общий делитель
while ( v2 )
{
int temp = v2;
v2 = vl % v2;
vl = temp;
}
return vl;
}
Выполнение функции происходит тогда, когда в тексте программы встречается оператор вызова. Если функция принимает параметры, при ее вызове должны быть указаны фактические параметры, аргументы. Их перечисляют внутри скобок, через запятую. В следующем примере main() дважды вызывает abs() и по одному разу min() и gcd(). Функция main() определяется в файле main.C
Вычисление n-ного числа Фибоначчи:
#include
size_t fib(size_t n)
{
if(n==0||n==1) return 1;
return fib(n-1)+fib(n-2);
}
int main()
{
std::cout << fib(5) << std::endl;
return 0;
}
Вычисляем рекурсивно факториал:
#include
size_t fact(size_t n)
{
if(n==0) return 1;
return n*fact(n-1);
}
int main()
{
std::cout << fact(12) >> std::endl;
return 0;
}
Реализация диалогового окна на C++
class CMyDialog : public CDialogImpl<CMyDialog>;
{
public:
enum { IDD = IDD_MYDLG };
BEGIN_MSG_MAP(CMyDialog)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
COMMAND_HANDLER(IDCANCEL, BN_CLICKED, OnBnClickedCancel)
END_MSG_MAP()
LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/,
BOOL& /*bHandled*/)
{
// Do some initialization code
return 1;
}
public:
LRESULT OnBnClickedCancel(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
};