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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2010, 21:02   #1
Crudelis
Пользователь
 
Аватар для Crudelis
 
Регистрация: 05.04.2010
Сообщений: 56
По умолчанию Объсните что не так делаю

Создаю класс, в нем массив, потом в конструкторе задаю данные в массив, но выдает ошибки, подскажите пожалуйста что делаю не так


Код:
#include<iostream>
using namespace std;
class Date 
{
	int day, monf, god, nday, nmonf, ngod, rez;
	int *masmec;
public:
	Date()
	{
		day=0; monf=0; god=0; nday=0; nmonf=0; ngod=0; rez=0;
		masmec=new int[13];
		masmec[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
	}
	~Date()
	{
		delete [] masmec;
		cout<<"destruct\n";
	}

};
ошибки:
Цитата:
: error C2059: синтаксическая ошибка: ]
: error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
: error C2143: синтаксическая ошибка: отсутствие ";" перед "}"
сout<<"Изучаю программирование" точка с запятой
Crudelis вне форума Ответить с цитированием
Старый 09.06.2010, 21:14   #2
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Код:
masmec[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
заполнение массива идет не так
вот так правильно
Код:
masmec={0,31,28,31,30,31,30,31,31,30,31,30,31};
В первом варианте вы пытаетесь присвоить 13-му (несуществующему к тому же) элементу массива еще один массив.
MaTBeu вне форума Ответить с цитированием
Старый 09.06.2010, 21:21   #3
Crudelis
Пользователь
 
Аватар для Crudelis
 
Регистрация: 05.04.2010
Сообщений: 56
По умолчанию

Код:
masmec={0,31,28,31,30,31,30,31,31,30,31,30,31};
сделал как вы советуете, та же ошибка((((((((((( не пойму как в классе инициализировать массив численный(
сout<<"Изучаю программирование" точка с запятой
Crudelis вне форума Ответить с цитированием
Старый 09.06.2010, 21:41   #4
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Собственно инициализация производится до открывающей фигурной скобки конструктора. Внутри его тела производится присваивание уже инициализированным переменным и объектам.
По-моему, кстати, тут вообще больше пойдет статический (не динамический) статический (как static) массив.
Ну а инициализацию лучше сделать в стиле инициализации, а не присваивания (про что я писал выше) - хоть в данном случае это подойдет только если массив будет статический (не динамический), но в принципе так лучше:
Код:
class Date 
{
	int day, monf, god, nday, nmonf, ngod, rez;
	static const int masmec[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
Date():
	day(0), monf(0), god(0), nday(0), nmonf(0), ngod(0), rez(0)
	{
	}
	~Date()
	{
		cout<<"destruct\n";
	}

};
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 10.06.2010, 00:26   #5
Crudelis
Пользователь
 
Аватар для Crudelis
 
Регистрация: 05.04.2010
Сообщений: 56
По умолчанию

спасибо большое, помогли, я думал в классе инициализируется массив как в мэине
сout<<"Изучаю программирование" точка с запятой
Crudelis вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив что я делаю не так Fox-mts Общие вопросы C/C++ 3 18.04.2011 19:17
не пойму что не так делаю Crudelis Общие вопросы C/C++ 3 23.04.2010 11:09
IBExpert, не могу понять что делаю не так! в чём проблема.... katia0017 SQL, базы данных 10 15.01.2010 18:33
Что не правильно делаю с free(); Winston123 Общие вопросы C/C++ 25 15.06.2009 21:21
Visual C++: Что не так делаю? N!ckeL Помощь студентам 8 19.05.2008 11:28