簡體   English   中英

在C ++中將結構作為構造函數參數傳遞

[英]Passing a struct as a constructor parameter in C++

我已經盡力而為,在這個特定主題上找不到很多東西。 我必須使用大量的變量,也許對於多個對象,然后將它們通過一組函數傳遞,所以我認為這是最好的方法。

我想將一個結構傳遞給未定義該結構的類的構造函數。 這可能嗎? 我的代碼如下所示:

class myClass
{
protected:
   double someVar;
   .
   .
public:
   myClass(struct structName);  //compiler is ok with this
   myClass();                   //default construct
};

struct structName
{
   double someOtherVar;
   .
   .
};

myClass::myClass(??????)  ///I don't know what goes here
{ 
  someVar = structName.someOtherVar; ///this is what I want to do
} 

編輯:我應該在類中聲明一個結構,並使用該結構作為參數嗎?

實際上,您已經寫了所有內容。 唯一的不同, struct structName我會用const struct structName &

myClass::myClass( const structName &s )
{ 
  someVar = s.someOtherVar; 
} 

或者您可以將構造函數定義為

myClass::myClass( const structName &s ) : someVar( s.someOtherVar )
{ 
} 

在此聲明中

   myClass(struct structName);  

struct structName是所謂的精細類型名稱。 它在定義類的名稱空間中引入了一種新類型。

在您的示例中,您首先聲明了結構,然后定義了它。 構造函數聲明不需要結構為完整類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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