С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/55: Рейтинг темы: голосов - 55, средняя оценка - 4.96
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 26
1

декларация в классе

17.12.2012, 05:46. Показов 11122. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
я хочу в класс добавить указатель на другой класс
и получаю следующую ошибку:
product.h:20: error: ISO C++ forbids declaration of ‘Database’ with no type
product.h:20: error: expected ‘;’ before ‘*’ token
в чем ошибка и как надо?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Product {
public:
Product();
Product(const Product&);
Product(std::string _name, int _price);
 
virtual ~Product();
std::string name;
int price;
 
[COLOR="Red"]Database* base;[/COLOR]
virtual void print();
virtual void input();
virtual void save();
virtual void load();
};
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.12.2012, 05:46
Ответы с готовыми решениями:

Предварительная декларация
Как известно, подключать хидеры в хидеры нехорошо. Вместо этого рекомендуется использовать...

Декларация типа
Нашёл в книге одну непонятную декларацию: fmap:: (a->b) -> f a -> f b Так вот, почему не...

БП: Декларация по ЕНВД
Бухгалтерия 2.0. Создается декларация по ЕНВД. В разделе 1 идет разбивка по ОКАТО. Бухгалтер...

Декларация о НДС
Возникла такая проблема. Изменилась форма регламентированного отчёта Декларация о НДС. Если товар...

3
4865 / 2664 / 913
Регистрация: 29.11.2010
Сообщений: 5,745
17.12.2012, 08:21 2
Синтаксических ошибок вроде нет.
Покажите больше кода. Исходники обоих классов целиком, например.
0
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 26
17.12.2012, 15:13  [ТС] 3
database.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <iomanip>
#include <typeinfo>
#include "product.h"
 
#ifndef __DATABASE_H_INCLUDED__
#define __DATABASE_H_INCLUDED__ 
 
class Database {
public:
   Database();
   Database(const Database&);
  
 
  virtual ~Database();
  Product* list[99];
  int i;
 void add_product(Product *_Product);
 void print_all();
 void save_to_file();
 void load_from_file();
};
#endif
0
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
17.12.2012, 15:54 4
j_runner, я вижу перекрестную ссылку между классами.
Решение следующее.
C++
1
2
3
4
5
6
//a.h
#include "b.h"
class A
{
   B* some;
};
C++
1
2
3
4
5
6
//b.h
class A;
class B
{
   A* some;
};
C++
1
2
3
//b.cpp
#include "a.h"
#include "b.h"
0
17.12.2012, 15:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.12.2012, 15:54
Помогаю со студенческими работами здесь

Моя декларация
Задекларировал вот так: Type TAudioTypes = (atWave,atMp3,atOgg,atMidi); AudioF:arrayof...

Декларация класса полинома
Как лучше задекларировать класс полинома n-ного порядка от m различных x с мультипликативными...

Декларация По Налогу На Прибыль
Не получается сформировать отчёт &quot;Декларация по налогам на прибыль организации&quot; с указанием кодов...

Декларация структуры без NEW
public struct parseLine { private string str; public string Str { ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru