Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2012, 16:57   #1
Arrioh
Пользователь
 
Регистрация: 25.03.2012
Сообщений: 60
Смущение Меня послал массив функций С++

Здравствуйте. Пытаюсь создать массив функций, а среда разработки говорит что нельзя...Подчеркивает funcs
Цитата:
func_t funcs[]={createX,createDiamond};
А почему нельзя? И как можно? SOS
Цитата:
#include<iostream>
using namespace std;

typedef void(*func_t)(int,char);

void createX(int m, char elem);
void createDiamond(int m, char elem);



int main()
{
int n;
char element;
int type;
cout << "Choose a type of figure you want to create and press enter: " << endl;
cout << "1. X"<< endl << "2. diamond" << endl;
cin >> type;


cout << "Choose a char element which you want to use as a building"<<endl;
cout << "component (for example Z,*,2...) and press enter:" << endl;
cin>>element;

cout << "Choose a size of your figure:" << endl;
cin >> n;//size

func_t funcs[]={createX,createDiamond};



cout<< "Thank you! Good bye!";
}

void createX(int m, char elem)
{
for(int x=1;x<=m;x++)
{

for(int y=0;y<=m;y++)
{

if(y==x||x+y==m){

cout<<elem;}
else{cout<<" ";}
}
cout<<endl;
}
}

void createDiamond(int m, char elem)
{
for(int x=0;x<=m;x++)
{

for(int y=-m;y<=m;y++)
{
if( (y>=-x) && (y<=x) && (x+y<=m) && (x-y<=m)) {cout<<elem;}
else{cout<<" ";}
}
cout<<endl;

}

}

Последний раз редактировалось Arrioh; 04.04.2012 в 17:24.
Arrioh вне форума Ответить с цитированием
Старый 04.04.2012, 17:27   #2
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Вот как-то так.
Код:
// прототип указателя на функцию
typedef void(func_t)(int,char);

void createX(int, char)
{
//
}
void createDiamond(int, char)
{
//
}

int main()
{
//иниц.массив функций
func_t* funcs[]= {createX, createDiamond}; 
	
funcs[0](0,0);//вызов по указателю
funcs[1](0,0);

//...
}
EUGY вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив функций ProgRoman Общие вопросы C/C++ 2 02.04.2012 17:56
У меня проблема с одной из моих функций для разбора строки, язык С/С++ [Федя] Общие вопросы C/C++ 3 07.01.2011 22:14
задача паскаль, скорее всего массив+рекурсия(хотя у меня другой способ) IvaniuS Помощь студентам 10 23.12.2009 15:34
Как ввести массив с помощью обобщенного программирования и std library функций? Olga_CS Общие вопросы C/C++ 0 29.05.2009 05:56