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

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

Войти
Регистрация
Восстановить пароль
 
SeerRus
5 / 5 / 1
Регистрация: 26.06.2013
Сообщений: 32
#1

Класс А не принимает член-переменную с типом класс Б - C++

27.06.2013, 18:31. Просмотров 270. Ответов 2
Метки нет (Все метки)

Разработка ведётся в Visual Studio 2010 с использованием MFC

Есть некий класс AnswersStatistic, header которого приведён ниже:

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
#pragma once
 
#include "DialogStats.h"
 
struct stRightWrong
{
    UINT right, wrong;
    stRightWrong(UINT _right, UINT _wrong) : right(_right), wrong(_wrong) {}
};
 
class AnswersStatistic
{
    stRightWrong m_total;
    typedef std::pair<CString, stRightWrong> PairNote;
public:
    std::map<CString, stRightWrong> m_notes;
 
    AnswersStatistic() : m_total(0,0) {}
    ~AnswersStatistic(void) {}
 
    CRect CoordStats;
 
    void AddRight(CString note);
    void AddWrong(CString note);
    void DrawAnswers(CPaintDC *pDC, CWnd *pWnd);
};
Есть другой класс CDialogStats, в который с помощью строки
C++
1
AnswersStatistic * m_statistics;
добавлена переменная.
header этого класса ниже
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
#pragma once
 
#include "stdafx.h"
#include "AnswersStatistic.h"
 
// диалоговое окно CDialogStats
 
class CDialogStats : public CDialogEx
{
    DECLARE_DYNAMIC(CDialogStats)
 
public:
    AnswersStatistic* m_statistics;
 
    CDialogStats(AnswersStatistic *_stats, CWnd* pParent = NULL);
    virtual ~CDialogStats() {}
 
    void FillListBox();
 
// Данные диалогового окна
    enum { IDD = IDD_DIALOG1 };
 
protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // поддержка DDX/DDV
 
    CListBox m_ListNotes;
 
    DECLARE_MESSAGE_MAP()
};
При попытке компиляции получены ошибки (первые в списке и ключевые):
C++
1
2
3
1>d:\projects\mine\musicteacher\musicteacher\dialogstats.h(13): error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
1>d:\projects\mine\musicteacher\musicteacher\dialogstats.h(13): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>d:\projects\mine\musicteacher\musicteacher\dialogstats.h(13): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
Как я понимаю, он не хочет создавать указатель такого класса. Как это исправить и где я ошибся?
Помогите пожалуйста!

Добавлено через 4 минуты
Разобрался, header друг на друга ссылаются.
Тему можно закрыть или снести.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.06.2013, 18:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Класс А не принимает член-переменную с типом класс Б (C++):

Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени? - C++
На самом деле ничё фантастического я не прошу, ведь: template &lt;class T&gt; class matrix { friend class diagonal; ...

Класс таблиц баз данных и класс записей в таблице(реляционная таблица). Предусмотреть класс связей между таблицами - C++
Здравствуйте! Никак не могу продумать структуру этой программы. Проходим наследование, но я все равно не знаю, как его здесь применить. Как...

Первый класс. Функция-член - C++
Добрый день! Пытаюсь собрать свой первый класс, но, кажется, не до конца понимаю всей сути. #include &lt;stdio.h&gt; #include &lt;iostream&gt; ...

Статический член указатель на класс - C++
Доброго времени суток. Что требовалось: создать статический указатель на класс CPerson, чтобы сохранить в него нужный объект. Как пытался...

Русский язык в консоли, класс, вектор с типом класса - C++
Добрый вечер. Написала класс. Сделала вектор с типом класса. Вектор хранит объекты класса. Добавляю в вектор элементы....

Функция которая принимает любой класс - C++
Здравствуйте программисты читаю книгу,и тут столкнулся с проблемой : void prins(int a,class_type t) // class_type не существует (а...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ISergey
Maniac
Эксперт С++
1374 / 885 / 52
Регистрация: 02.01.2009
Сообщений: 2,658
Записей в блоге: 1
27.06.2013, 18:34 #2
C++
1
2
3
4
5
6
7
8
9
#pragma once
 
//#include "DialogStats.h" !!!!
 
struct stRightWrong
{
    UINT right, wrong;
    stRightWrong(UINT _right, UINT _wrong) : right(_right), wrong(_wrong) {}
};
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#pragma once
 
#include "stdafx.h"
//#include "AnswersStatistic.h" !!!
 
class AnswersStatistic; 
// диалоговое окно CDialogStats
 
class CDialogStats : public CDialogEx
{
    DECLARE_DYNAMIC(CDialogStats)
 
public:
    AnswersStatistic* m_statistics;
0
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,168
Завершенные тесты: 2
27.06.2013, 18:47 #3
@ISergey, ну и добавить инклуд в файл исходных текстов
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.06.2013, 18:47
Привет! Вот еще темы с ответами:

Почему класс не принимает значение string? - C++
Класс не принимает тип string, почему? #pragma once namespace D { class Pract { private: string AppName;

Родовой класс как член класса - C++
Допусти у меня есть родовой класс template &lt;class data_t&gt; class A{} и класс B{}. Один из членов класса B - класс А. Но Visual Studio 10 его...

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

Добавить в класс Student функцию-член класса - C++
Добавить в класс Student функцию-член класса, определяющую, получает ли студент стипендию, и в головной программе организовать подсчёт...


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

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

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