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