在另一个类中创建类对象

时间:2014-06-03 14:41:01

标签: c++

我创建了两个类对象,每个对象都有一个构造函数,我试图让一个类对象成为另一个对象中的私有变量。这是我想要做的一个简单的例子,而不是实际的类名,而是一个例子。有更多的公共和私人变量,但为了简单起见,我把它们排除在外。每个类都有一个单独的.cpp和头文件,每个头都有保护器(#ifndef等) 所以基本上我有轮胎的私人和公共功能和变量,然后我试图使用轮胎类型的私人变量制造类车。

它会在车内没有轮胎物体的情况下建造,但是当我试图将轮胎MAKE放入车内时我会遇到这些错误:

  

错误C2146:语法错误:缺少';'在标识符'A'之前   错误C4430:缺少类型说明符 - 假定为int。注意:C ++不支持default-int

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;
};

编辑: 我有一个名为Includes.h的单独头文件,其中包含项目的所有头文件。看起来像

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

然后在tire.h和car.h中我有

#include "Includes.h"

1 个答案:

答案 0 :(得分:0)

你的问题是你包括&#34; includes.h&#34;在tire.h中也是如此。在编译时,首先编译tire.h并且安全措施定义_tire_h_(或者保护你的安全措施)。编译car.h时,轮胎类没有定义。

从tire.h中删除includes.h并且应该编译正常。关键是轮胎必须存在于car.h中:

#include tire.h

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