簡體   English   中英

在另一個類中創建類對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM