2014-06-03 3 views
0

Я создал два объекта класса, каждый из которых имеет конструктор, и я пытаюсь сделать один объект класса частной переменной в другом объекте. Вот простой пример того, что я пытаюсь сделать, а не фактические имена классов, но пример. Есть более публичные и частные переменные, но для простоты я их оставил. Каждый класс имеет отдельный .cpp и заголовочный файл, и каждый заголовок имеет защитников (#ifndef и т. Д.) Так что в основном у меня есть шина класса с его частными и открытыми функциями и переменными, тогда я пытаюсь сделать классный автомобиль с приватным переменная типа шины.Создание объекта класса в другом классе

Он будет строить без объекта шины в машине, но когда я пытаюсь поставить шины MAKE в машину я получаю эти ошибки:

ошибка C2146: синтаксическая ошибка: отсутствует «;» перед идентификатором «A»
ошибка C4430: спецификатор отсутствующего типа - int. Примечание: C++ не поддерживает по умолчанию-ИНТ

class tire{ 
    tire(); 
public: 
    double a,b,c,d; 
private: 
    double e,f,g,h; 
}; 

class car{ 
    car(); 
public: 
    double i,j,k; 
private: 
    tire MAKE; 
}; 

EDIT: У меня есть отдельный заголовочный файл под названием Includes.h, где я включаю все заголовочные файлы для проекта. Похоже что-то вроде

#include <iostream> 
#include <string> 
#include "tire.h" 
#include "car.h" 

затем в tire.h и car.h меня

#include "Includes.h" 
+0

Вы #include tire.h в car.h? – Quentin

+0

Вам, вероятно, просто нужно переслать декларацию своего класса 'tire', например,' class tire; 'над вашей декларацией автомобиля, а затем включить заголовок' tire' в 'car.cpp'. – CoryKramer

+0

Пожалуйста, предоставьте [SSCCE] (http://sscce.org/), когда ваш текущий код работает. http://ideone.com/GbW9ho – Csq

ответ

0

Ваша проблема в том, что вы в том числе "includes.h" в tire.h, а также. При компиляции сначала скомпилируется tire.h, а гарантии определяют _tire_h_ (или whaterver ваша защита). Когда car.h составлен, класс шины не определен.

Удалить входит.h из шины.h, и это должно компилироваться в порядке. Ключ в том, что шина должна быть в автомобиле.h:

Смежные вопросы