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

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

Восстановить пароль Регистрация
 
funduk17
40 / 3 / 0
Регистрация: 20.05.2013
Сообщений: 66
12.02.2014, 21:06     Ошибка в объявлении класса (в конструкторе) #1
Я не могу разобраться с классами и конструкторами, в строчке
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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2014, 21:06     Ошибка в объявлении класса (в конструкторе)
Посмотрите здесь:

C++ ошибка при объявлении функции класса
C++ Как вызвать виртуальную функцию из дочернего класса, если она определена и вызывается в конструкторе РОДИТЕЛЬСКОГО класса?
C++ Использование аргументов в конструкторе при объявлении массива - }{ЭЛП
C++ Инициализация объектов класса в конструкторе другого класса
C++ Ошибка в конструкторе копирования класса
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Aloir
 Аватар для Aloir
216 / 216 / 13
Регистрация: 17.12.2010
Сообщений: 688
12.02.2014, 21:31     Ошибка в объявлении класса (в конструкторе) #2
вот тут
C++
1
date=[0;0;0]
Добавлено через 6 минут
а если не понятно, вот сюда
ну а если совсем непонятно, то спрашивайте..
funduk17
40 / 3 / 0
Регистрация: 20.05.2013
Сообщений: 66
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;
}
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,048
12.02.2014, 21:53     Ошибка в объявлении класса (в конструкторе) #4
Цитата Сообщение от funduk17 Посмотреть сообщение
class Progect
Цитата Сообщение от funduk17 Посмотреть сообщение
progect *a;
Цитата Сообщение от funduk17 Посмотреть сообщение
a=new progect [n];
разницу видишь?
Aloir
 Аватар для Aloir
216 / 216 / 13
Регистрация: 17.12.2010
Сообщений: 688
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;
}
funduk17
40 / 3 / 0
Регистрация: 20.05.2013
Сообщений: 66
12.02.2014, 22:01  [ТС]     Ошибка в объявлении класса (в конструкторе) #6
ValeryS, я это исправил, просто ошибка высвечивалась раньше, и дальше я пока не смотрел!
Aloir, вы не поняли проблему!
Так как я пытался сделать по первому способу(без структуры, я так и не разобрался).
а во втором варианте я всего лишь забыл закрыть структуру, и в ошибке оно мне писало что слишком типов!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2014, 22:40     Ошибка в объявлении класса (в конструкторе)
Еще ссылки по теме:

Ошибка в конструкторе класса C++
C++ Найдите ошибку в объявлении класса
Ошибка C4307 при объявлении в main() указателя шаблона-класса C++

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

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,048
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];
Yandex
Объявления
12.02.2014, 22:40     Ошибка в объявлении класса (в конструкторе)
Ответ Создать тему
Опции темы

Текущее время: 17:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru