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

struct and header files - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Массив строк http://www.cyberforum.ru/cpp-beginners/thread196532.html
Привет всем! Прошу помощи в решении следующей задачи: Нужно ввести строку символов разделителей и массив строк текста с неизвестным кол-вом строк. Окончание ввода происходит при вводе строки с...
C++ Вычисление величины a, b и выводила результаты на экран! Составить программу, которая вводила бы три числа x, y, z, вычисляла величины a, b и выводила результаты на экран в удобном для восприятия виде (размещение на экране, объяснения, форматирование,... http://www.cyberforum.ru/cpp-beginners/thread196515.html
C++ Одномерные масивы
Дан массив из н элементов , создать программу которая выводит на экран все одинаковые элементы. Помогите где ошибка ? ... спс заранее #include<stdio.h> #include<conio.h> void main() {...
C++ Сохранение файла в С++
Вот прога была написана на Си. И щас переписал на С++ и не знаю ,что делать с сохранеием файла. Помогите исправить ошибку. Сам пишу в visual studio 2008. #include <stdafx.h> #include...
C++ двоичное представление http://www.cyberforum.ru/cpp-beginners/thread196502.html
пользователь вводит с клавиатуры 2 беззнаковых длинных целых числа a, b. Вывести на консоль слагаемые и их сумму a+b в двоичной системе. unsigned long bin(unsigned long x) { for(int i = 31; i...
C++ Задачка на матрицу Помогите разобраться... Ввести с клавиатуры целочисленную матрицу CN×N . Найти сумму всех элементов главной диагонали, принадлежащих отрезку . подробнее

Показать сообщение отдельно
lifestyle
Mobile Developer
232 / 228 / 4
Регистрация: 10.05.2009
Сообщений: 917

struct and header files - C++

24.11.2010, 01:51. Просмотров 1093. Ответов 2
Метки (Все метки)

Куда записывать struct?
Если определяю его вклассе NMEAStructs.cpp в таком виде:
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
#include "NMEAStructs.h"
#include "Satellites.h"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <iostream>
 
NMEAStructs::NMEAStructs() {
}
 
NMEAStructs::NMEAStructs(const NMEAStructs& orig) {
}
 
NMEAStructs::~NMEAStructs() {
}
 
struct GPGGAData
{
//public:
    int Hour;
    int Minute;
    int Second;
    double Latitude;
    NMEAStructs::Direction LatitudeHemispher;
    int NumberOfSatellitesInUse;
    double HDOP;
    double Altitude;
    int Count;
};
и обьявляю в header'e
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
/* 
 * File:   NMEAStructs.h
 * Author: andrey
 *
 * Created on 23 Ноябрь 2010 г., 20:41
 */
#include "Satellites.h"
#include <iostream>
#ifndef NMEASTRUCTS_H
#define    NMEASTRUCTS_H
 
class NMEAStructs {
public:
    NMEAStructs();
    NMEAStructs(const NMEAStructs& orig);
    virtual ~NMEAStructs();
    struct GPGSAData;
    struct GPGSVData;
    struct GPRMBData;
    struct GPRMCData;
    struct GPGGAData;
private:
 
};
 
#endif    /* NMEASTRUCTS_H */
то при компиляции выдает ошибку:NMEAParser.cpp:24:5: error: ‘GPGGAData’ in class ‘NMEAStructs’ does not name a type такого файла:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "NMEAParser.h" 
#include "NMEAStructs.h"
 
    const int NP_MAX_CMD_LEN=8;//max comm length (NMEA address)
    const int NP_MAX_DATA_LEN=256;//max data length
    const int NP_MAX_CHAN=36;//max number of channels
    const int NP_WAYPOINT_ID_LEN=32;//waypoint max length string
    NMEAStructs::NMEAState   nState;//Current state protocol parser is in
    unsigned char checksum;
    unsigned char receivedChecksum;
    int index;//Index used for command and data
    unsigned char *command;//NMEA command
    unsigned char *data;//Nmea data
    
    //number of NMEA commands received (processed or not processed)
    int CommandCount;
    NMEAStructs::GPGGAData GPGGA;//строка ошибки
А вот если определяю структуру в хедере, то все работает отлично, тоже самое происходит с enum'ом. Так правильно обьявлять(стоИт так обьявлять, читал что компиляция хедера занимает время изза того что каждый класс который юзает данный хедер, то он по новой компилируется?)
или есть более лучший(правильный) способ?(кроме использования классов. такая же трабла с enum)
писать все в одном файле не хочу так как есть другие классы которые юзают эти структуры и инамы, и не хочу, соответственно, беспорядка в коде.
П,С,
не ругайте сильно, только начал с++ изучать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru