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

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

Войти
Регистрация
Восстановить пароль
 
j_runner
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 26
#1

декларация в классе - C++

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

я хочу в класс добавить указатель на другой класс
и получаю следующую ошибку:
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();
};
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2012, 05:46     декларация в классе
Посмотрите здесь:

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

Декларация класса полинома - C++
Как лучше задекларировать класс полинома n-ного порядка от m различных x с мультипликативными членами суммарной степени <=n? Например, при...

[C++] декларация класса со статическим полем - C++
Не сингелтон, а класс со статическим именно полем, а не экземпляром. Как это пишется, я знаю, если у меня будет реальная задача на такое...

Что такое forward декларация функции? - C++
Вот в этом примере узнал об этом : struct S { static int i; S() { ++i; } S(const S&) { ++i; } }; int...

Массив в классе - C++
Здравствуйте!Помогите разобраться.Создаю динамический массив в конструктуре класса,но в отладчике на протяжении работы программы...

Cтек в классе - C++
Задание: Описать класс реализующий стек произвольного размера для хранения целых чисел, добавление и извлечение одиночных элементов из...

Vector в Классе - C++
Добрый день. Не могу понять, как можно реализовать вектор в классе с конструктором. Просто в main все работает. Набросал код для класса,...

Ошибка в классе - C++
Есть мойкласс. Когда создаю объект этого класса, проэкт не компилируется из-за ошибки: мойкласс does not name a type мойкласс...

Конструкторы в классе - C++
Не пойму, как работает наследование. Конструкторы не наследуются, а при вызове конструктора дочернего класса конструкторы...

Класс в классе - C++
Пытаюсь учить C++, может кто подсказать как вложить классы Female или Male внутрь других классов и наследовать их от них? Вот сделал такой...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
2918 / 1347 / 134
Регистрация: 29.11.2010
Сообщений: 2,721
17.12.2012, 08:21     декларация в классе #2
Синтаксических ошибок вроде нет.
Покажите больше кода. Исходники обоих классов целиком, например.
j_runner
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
I.M.
564 / 547 / 5
Регистрация: 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"
Yandex
Объявления
17.12.2012, 15:54     декларация в классе
Ответ Создать тему
Опции темы

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