我创建了两个类对象,每个对象都有一个构造函数,我试图让一个类对象成为另一个对象中的私有变量。这是我想要做的一个简单的例子,而不是实际的类名,而是一个例子。有更多的公共和私人变量,但为了简单起见,我把它们排除在外。每个类都有一个单独的.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"
答案 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;
};