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

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

Войти
Регистрация
Восстановить пароль
 
Оксана 1234
4 / 4 / 0
Регистрация: 10.04.2013
Сообщений: 172
#1

Не работает прорамма с классами - C++

21.10.2013, 22:16. Просмотров 338. Ответов 4
Метки нет (Все метки)

Не могу понять где ошыбка и как ее исправить . Друзья, помогите пожалуйста
1>------ Построение начато: проект: ConsoleApplication2, Конфигурация: Debug Win32 ------
1> flower.cpp
1>c:\users\оксана\documents\visual studio 2012\projects\consoleapplication2\consoleapplication2\flower.h(28): error C2059: синтаксическая ошибка: {
1>c:\users\оксана\documents\visual studio 2012\projects\consoleapplication2\consoleapplication2\flower.h(28): error C2334: непредвиденные лексемы перед "{"; пропуск вероятного тела функции
1>c:\users\оксана\documents\visual studio 2012\projects\consoleapplication2\consoleapplication2\flower.cpp(18): error C2065: a: необъявленный идентификатор
1>c:\users\оксана\documents\visual studio 2012\projects\consoleapplication2\consoleapplication2\flower.cpp(25): error C2065: a: необъявленный идентификатор
========== Построение: успешно: 0, с ошибками: 1, без изменений: 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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <algorithm>
#include <iterator>
#include <iostream>
#include <cctype>
#include "flower.h"
 
using namespace std;
 
int flower::count = 0;
 
bool flower::month(int n)
{   if((n<=0)&&(n>=12)) return false;
    name_month=a[n-1];
    return true;
}
 
bool flower::month(string s)
{
    for(int i=0; i<12;i++)
    {   if(s==a[i])
    numb_month=i+1;
    return true;}
    return false;
}
 
char* flower::month()
{
    return name_month;
}
 
void flower::set_color(char*s)
{
    color=s;
}
 
char* flower::get_color()
{
    return color;
}
 
void flower::set_number(int s)
{
    number=s;
}
 
int flower::get_number()
{
    return number;
}
 
flower::flower()
{cout<<"Konstryktor\n";
name=0;
color=0;
number=0;
}
 
flower::flower(flower &m)
{
    cout<<"Konstructor kopiyvannia\n";
    name=new char[strlen(m.name)+1];
    color=new char[strlen(m.color)+1];
    number=m.number;
    strcpy(name, m.name );
    strcpy(color,m.color);
    count ++;
}
 
flower::flower(char*ptr,char*l, int d)
{cout<<"Konstryktor z parrametramu\n";
int len=strlen(ptr);
int dow=strlen(l);
name=(char*) malloc(len+1);
color=(char*) malloc(dow+1);
number=d;
strcpy(name,ptr);
strcpy(color,l);
}
main
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "flower.h"
#include <fstream>
#include <sstream>
#include <string>
#include <algorithm>
#include <iostream>
#include <iterator>
#include <cctype>
 
using namespace std;
 
void main()
{flower kvit_1(), kvit_2("rosa","red",2), kvit_3(kvit_2);
 
 
system("pause");
}
Заголовочный файл
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
#ifndef flower_h_
#define flower_h_
 
 
#include<iostream>
#include <string>
using namespace std;
 
class flower
{
private:
    int number;
    static int count;
protected:
    char *color;
public:
    char *name;
    char*name_month;
    int numb_month;
 
    flower();
    flower(char*,char*, int);
    flower(flower &);
 
    string a[12]={"january", "february", "mart", "april", "may", "june", "july", "ougest", "september", "october", "november", "december"}
 
    void set_color(char*);
    char*get_color();
    void set_number(int);
    int get_number();
    bool month(int );
    bool month(string);
    char*month ();
    
    static int get_count()
{
    return count;
};
    
};
 
#endif
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2013, 22:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не работает прорамма с классами (C++):

Работает ли Кириллица с классами? - C++
Почему-то всё корректно отображается на русском, кроме параметра, который выходит из класса. main.h: class Person { public: ...

Работа с классами. Не работает Кириллица. Истина рядом - C++
Работаю в Microsoft Visual Studio 2010. Кириллица везде работает, кроме одного момента. Подозреваю на то, что классы не умеют работать...

Как работает ссылка с объектами, классами и перегруженным оператором [] - C++
Я тут решил поиграться с кодом и понял что совершенно не догоняю как работает ссылка &amp; Есть код нормально работающий: #include...

Прорамма сортировки - C (СИ)
Помогите написать программу, которая дает на выходе отсортированные по алфавиту буквы, встречающиеся более, чем один раз в словах в...

Подскажите где ошибка, в первом примере всё работает, но с классами отказ - Python
import glob import sys import os import pprint if sys.platform == ('win'): dirname = r'/' else: dirname =...

Работа с классами в С++ - C++
Доброго всем дня.У меня возникла проблема с освоением языка C++ , сейчас пишу курсовую на этом языке, и ещё не совсем всё понимаю, но книги...

4
Рыжий Лис
Просто Лис
350 / 275 / 81
Регистрация: 17.05.2012
Сообщений: 1,124
Записей в блоге: 4
23.10.2013, 19:31 #2
Здесь точку с запятой поставить
C++
1
string a[12]={"january", "february", "mart", "april", "may", "june", "july", "ougest", "september", "october", "november", "december"};
0
castaway
Эксперт С++
4916 / 3024 / 370
Регистрация: 10.11.2010
Сообщений: 11,081
Записей в блоге: 10
Завершенные тесты: 1
23.10.2013, 19:42 #3
Методы bool flower::month(int n) и bool flower::month(string s) не видят определения массива a. Видимо его стоит вынести за пределы класса (сделать глобальным).

Добавлено через 7 минут
Хотя нет, я ошибся, в этом нет необходимости.
Достаточно исправить ошибку о которой говорил Рыжий Лис.
0
yaskiv
6 / 6 / 1
Регистрация: 08.04.2013
Сообщений: 37
24.10.2013, 01:31 #4
Цитата Сообщение от castaway Посмотреть сообщение
Методы bool flower::month(int n) и bool flower::month(string s) не видят определения массива a. Видимо его стоит вынести за пределы класса (сделать глобальным).

Добавлено через 7 минут
Хотя нет, я ошибся, в этом нет необходимости.
Достаточно исправить ошибку о которой говорил Рыжий Лис.
всеравно не работает

Добавлено через 54 минуты
Оксана 1234, если нашли решение, скиньте пожалуйста.
0
Оксана 1234
4 / 4 / 0
Регистрация: 10.04.2013
Сообщений: 172
24.10.2013, 02:08  [ТС] #5
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#include <cctype>
 
using namespace std;
 
string a[12] = {"january", "february", "mart", "april", "may", "june", "july", "ougest", "september", "october", "november", "december"};
 
class flower
{
private:
    int number;
    static int count;
protected:
    char *color;
public:
    char *name;
    const char*name_month;
    int numb_month;
 
    flower();
    flower(char*,char*, int);
    flower(flower &);
 
    void set_color(char*);
    char*get_color();
    void set_number(int);
    int get_number();
    bool month(int );
    bool month(string);
    const char*month ();
    
    static int get_count()
    {
        return count;
    };
    
};
 
int flower::count = 0;
 
bool flower::month(int n)
{   if((n<=0)&&(n>=12)) return false;
    name_month = a[n - 1].c_str();
    return true;
}
 
bool flower::month(string s)
{
    for(int i=0; i<12;i++)
    {   if(s==a[i])
    numb_month=i+1;
    return true;}
    return false;
}
 
const char* flower::month()
{
    return name_month;
}
 
void flower::set_color(char*s)
{
    color=s;
}
 
char* flower::get_color()
{
    return color;
}
 
void flower::set_number(int s)
{
    number=s;
}
 
int flower::get_number()
{
    return number;
}
 
flower::flower()
{cout<<"Konstryktor\n";
name=0;
color=0;
number=0;
}
 
flower::flower(flower &m)
{
    cout<<"Konstructor kopiyvannia\n";
    name=new char[strlen(m.name)+1];
    color=new char[strlen(m.color)+1];
    number=m.number;
    strcpy(name, m.name );
    strcpy(color,m.color);
    count ++;
}
 
flower::flower(char*ptr,char*l, int d)
{cout<<"Konstryktor z parrametramu\n";
int len=strlen(ptr);
int dow=strlen(l);
name=(char*) malloc(len+1);
color=(char*) malloc(dow+1);
number=d;
strcpy(name,ptr);
strcpy(color,l);
}
 
void main()
{flower kvit_1(), kvit_2("rosa","red",2), kvit_3(kvit_2);
 
 
system("pause");
}
0
24.10.2013, 02:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2013, 02:08
Привет! Вот еще темы с ответами:

работа с классами - C++ Builder
Ребята как реализовать вот такую задачу?: Построить класс - потомок класса TLabel, объекты которого при щелчке правой кнопкой мыши...

Работа с классами - Python
Здравствуйте, такой вопрос, как указать в функции тип аргументов и как потом эти значения этих аргументов использовать в других функциях. ...

пятнашки на с++(с классами) - C++
Всем привет, у меня такая проблема, надо создать код на с++ с применением объектно- ориентированного подхода. Есть код на с++ без...

Работа с Классами - Java SE
Реализовать класс Bankomat, моделирующий работу банкомата. В классе должны содержаться поля для хранения идентификационного номера...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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