2015-12-15 81 views
2

的構造函數中我正在編程一個C++中的多態程序,它需要使用派生/繼承類。我的基類叫做ClassA,我的派生類叫做ClassB。我有一個名爲varClass的單獨的類,它是我的基類的構造函數中的參數的數據類型,ClassA。我在ClassA.cpp獲得下面的構造此錯誤消息:C++:「Field'object_var'必須初始化」在基類

字段「object_var」必須初始化

#include "ClassA.h" 
#include "varClass.h" 

ClassA::ClassA(const classVar &O, const int &p) {} 

爲什麼必須從一個單獨的具體類的對象,讓他們之前被初始化使用一個函數的參數在不同的類中?我曾嘗試在ClassAclassVar課中提前申報,但沒有運氣。我怎樣才能解決這個問題,以允許從一個單獨的類的數據類型的參數?如果我給它一個初始化,我怎樣才能確保傳遞給這個構造函數的每個值都是唯一的,而不是被初始化值重寫呢?

下面是其餘的相關代碼。我不打算展示Derived類,因爲我不相信它們是問題的一部分,但由於我是新手程序員,所以決定提及它們,這可能是問題所在。

// ClassA.h 

#ifndef CLASSA_H 
#define CLASSA_H 

#include "varClass.h" 

class ClassA { 

protected: 
    const classVar &object_var; // The problem lies here 
    unsigned var1; 

// ... more code follows 

public: 
    ClassA(const object &O, const int &p); 

// ... more code follows 

}; 

#endif 

頁眉和實施objectVar類無關的問題。該課程是一個標準的具體課程。

回答

0

object_var需要在構造函數中初始化,因爲它是一個引用。沒有其他的方法可以引用某些東西。

+0

你能舉一個正確的方法來做這個例子嗎?如何初始化它以確保傳遞給它的值是唯一的,而不僅僅是初始化值相同? – jshapy8

+0

@ revolution9540類似於'ClassA :: ClassA(const classVar&O,const int&p):object_var(O){} – 1201ProgramAlarm

+0

謝謝!我沒有想到這樣做。 – jshapy8