[英]Creating class object in another class
我創建了兩個類對象,每個對象都有一個構造函數,並且我試圖使一個類對象成為另一個對象中的私有變量。 這是我嘗試做的一個簡單示例,而不是實際的類名,而是一個示例。 有更多的公共變量和私有變量,但為簡單起見,我將它們省略了。 每個類都有一個單獨的.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"
您的問題是,您還在輪胎.h中包含“ includes.h”。 編譯時,先編譯tire.h,然后定義保護措施_tire_h_(或無論保護措施如何)。 編譯car.h時,未定義輪胎類。
從tire.h中刪除include.h,應該可以正常編譯。 關鍵是car.h中必須存在輪胎:
#include tire.h
class car{
car();
public:
double i,j,k;
private:
tire MAKE;
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.