Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
funduk17
40 / 3 / 0
Регистрация: 20.05.2013
Сообщений: 67
#1

Ошибка в объявлении класса (в конструкторе) - C++

12.02.2014, 21:06. Просмотров 274. Ответов 6
Метки нет (Все метки)

Я не могу разобраться с классами и конструкторами, в строчке
C++
1
       Progect();// {numb=0; sum=0; date=[0;0;0];}
всегда высвечивает ошибку, пробовал по разному как у учебниках даётся, стандартный конструктор, конструктор с параметром, где я накосячил?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
class Progect
{
private:
        int numb;
        int sum;
        int date[3];
public:
       Progect();// {numb=0; sum=0; date=[0;0;0];}
//       Progect(int n, int s, int d[3])
//       {numb=n; sum=s; date=d}
       void vvod();
       void vivod(); 
};
void Progect::vvod()
{cout<<"Ââåäèòå Г*îìåð ïðîåêòГ*"<<endl;
cin>>numb;
cout<<"Ââåäèòå ñóììó"<<endl;
cin>>sum;
cout<<"Ââåäèòå Г¤Г*ГІГі(Г¤/Г¬/ГЈ)"<<endl;
for(int i=0;i<3;i++)cin>>date[i];
 }
void Progect::vivod()
{
 }
 
int main()
{
    Progect a;
 
    system("PAUSE");
    return EXIT_SUCCESS;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2014, 21:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка в объявлении класса (в конструкторе) (C++):

Ошибка при работе с объектом класса в конструкторе другого класса - C++
Имеется данный код: https://github.com/ubelian/glgame/tree/master/glgame В файле Food.cpp в конструкторе класса Food::Food() на 19...

Ошибка при объявлении функции класса - C++
функция определена: class krug{ // ... void sr(krug ob); // ... } // ... void krug::sr(krug ob){ double s1,s2;

Ошибка в конструкторе класса - C++
Всем доброго времени суток! Есть простая задачка: Написать реализацию класса и короткую программку, использующую все функции-члены. ...

Ошибка в конструкторе копирования класса - C++
Хотя и делал по образцу, но почему то лезет ошибка записи за пределы динамического массива, хотя и переменные копируются верно (отладчик...

Ошибка в конструкторе класса динамических строк - C++
Необходимо создать класс динамических строк с конструктором копирования, оператором присваивания, операторами сравнения, операторами...

Ошибка C4307 при объявлении в main() указателя шаблона-класса - C++
Привет, всем. Помогите, плиз, с синтаксисом. Возникает, ошибка при объявлении в main() указателя шаблона-класса. #include &lt;iostream&gt; ...

6
Aloir
218 / 218 / 13
Регистрация: 17.12.2010
Сообщений: 690
12.02.2014, 21:31 #2
вот тут
C++
1
date=[0;0;0]
Добавлено через 6 минут
а если не понятно, вот сюда
ну а если совсем непонятно, то спрашивайте..
0
funduk17
40 / 3 / 0
Регистрация: 20.05.2013
Сообщений: 67
12.02.2014, 21:48  [ТС] #3
Нет, дело не в этом! У меня такое ощущение что запись
C++
1
Progect::Progect()
моя среда требует впихнуть в сам класс и описать её в public:
Я уже переделал программу но всё равно она ругается почти на том же месте.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <cstdlib>
#include <iostream>
#include <conio.h> 
 
using namespace std;
struct pp
{       int numb;
        int sum;
        int date_d;
        int date_m;
        int date_g;
}
class Progect
{ pp w;
public:
       Progect();
       void vivod(); 
};
Progect::Progect()
{cout<<"Ââåäèòå Г*îìåð ïðîåêòГ*"<<endl; cin>>w.numb;
 cout<<"Ââåäèòå ñóììó"<<endl; cin>>w.sum;
 cout<<"Ââåäèòå Г¤Г*ГІГі(Г¤/Г¬/ГЈ) ÷åðåç ïðîáåë"<<endl;
 cin>>w.date_d>>w.date_m>>w.date_g;                 }
 
void Progect::vivod()
{cout<<"Ïðîåêò Г*îìåð: "<<w.numb<<endl;
 cout<<"ÑóììГ*: "<<w.sum<<endl;
 cout<<"Г„Г*ГІГ*: "<<w.date_d<<"/"<<w.date_m<<"/"<<w.date_g<<endl;
 }
 
int main()
{int n;
Progect *a;
cout<<"Êîë-âî ïðîåêòîâ: "; cin>>n;
a=new Progect [n];
for(int i=0;i<n;i++)
{cout<<endl;
a[i].vivod(); }
delete [] a;
    system("PAUSE");
    return 0;
}
0
ValeryS
Модератор
6651 / 5060 / 470
Регистрация: 14.02.2011
Сообщений: 16,918
12.02.2014, 21:53 #4
Цитата Сообщение от funduk17 Посмотреть сообщение
class Progect
Цитата Сообщение от funduk17 Посмотреть сообщение
progect *a;
Цитата Сообщение от funduk17 Посмотреть сообщение
a=new progect [n];
разницу видишь?
0
Aloir
218 / 218 / 13
Регистрация: 17.12.2010
Сообщений: 690
12.02.2014, 21:53 #5
Цитата Сообщение от funduk17 Посмотреть сообщение
и описать её в public:
ну если вы ее опишите не в public, то вы явно не сможете создать обьект этого класса.

напишите лучше конкретно, что вам непонятно
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class testClass
{
    testClass()
    {
        n= 4;
    }
 
    testClass(int x);
private:
    int n;
};
 
 
testClass::testClass(int x)
{
    n = x;
}
0
funduk17
40 / 3 / 0
Регистрация: 20.05.2013
Сообщений: 67
12.02.2014, 22:01  [ТС] #6
ValeryS, я это исправил, просто ошибка высвечивалась раньше, и дальше я пока не смотрел!
Aloir, вы не поняли проблему!
Так как я пытался сделать по первому способу(без структуры, я так и не разобрался).
а во втором варианте я всего лишь забыл закрыть структуру, и в ошибке оно мне писало что слишком типов!
0
ValeryS
Модератор
6651 / 5060 / 470
Регистрация: 14.02.2011
Сообщений: 16,918
12.02.2014, 22:40 #7
Цитата Сообщение от funduk17 Посмотреть сообщение
ValeryS, я это исправил,
что именно?
Цитата Сообщение от funduk17 Посмотреть сообщение
просто ошибка высвечивалась раньше,
где и какая
выложи листинг и укажи строчки с ошибками и текст ошибок
Цитата Сообщение от funduk17 Посмотреть сообщение
а во втором варианте я всего лишь забыл закрыть структуру,
что значит забыл?
скобку не поставил?
кстати после описания структуры как и класса нужна точка с запятой
Цитата Сообщение от funduk17 Посмотреть сообщение
Так как я пытался сделать по первому способу(без структуры, я так и не разобрался).
если ты про первый пост то там есть описание конструктора
Цитата Сообщение от funduk17 Посмотреть сообщение
Progect();// {numb=0; sum=0; date=[0;0;0];}
а реализации я так и не нашел, видать компилятор тоже
и что это за конструкция ?
Цитата Сообщение от funduk17 Посмотреть сообщение
date=[0;0;0];
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2014, 22:40
Привет! Вот еще темы с ответами:

Использование аргументов в конструкторе при объявлении массива - }{ЭЛП - C++
Здравствуйте. Мне нужен массив класса button. Короче: button but(1);//работает button but;//работает button but(1);//не работает ...

С++, delete в деструкторе класса не видит переменные, создаваемые new в конструкторе класса - C++
#include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include &quot;math.h&quot; using namespace std; class fun { double t = 0, x = 0, y = 0, z =...

Как вызвать виртуальную функцию из дочернего класса, если она определена и вызывается в конструкторе РОДИТЕЛЬСКОГО класса? - C++
Ну то есть так: есть родительский и дочерний класс, в родительском определен виртуальная функция и вызывается в его конструкторе (камень...

Инициализация объектов класса в конструкторе другого класса - C++
У меня есть класс Subscriber,в котором есть несколько объектов другого класса Date,мне нужно,чтобы при создании Subscriber объекты класса...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Yandex
Объявления
12.02.2014, 22:40
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru