我有,其計算基於輸入參數的結構體的函數。 是否可以通過傳遞所需的變量作爲參數來編寫一個只返回計算結構的某個變量的函數? 問題是結構必須在函數內部創建和計算,所以我只知道結構成員的將來變量名稱。C++通行證結構成員作爲參數
基本上我要的是替換下列硬編碼 - 由我作爲參數傳遞給主「DoSomethingSpecific」功能的可變部分「> member1上」。
double DoSomethingSpecific()
{
struct *s = CalculateStruct();
DoSomethingElse(s->member1);
}
編輯: 我創建了一個基於現在的工作,解決了通過結構成員作爲變量,而無需創建結構itsself運作的實質性問題的答案小例子。然而,數據類型(INT)必須在這種情況下,之前已知的(否則,如果需要的模板,將有助於)
#include <iostream>
using namespace std;
struct MyStruct
{
int a;
int b;
};
int GetVariable(int MyStruct::* field)
{
MyStruct *_myStruct = new MyStruct();
_myStruct ->a = 1;
_myStruct ->b = 2;
return _myStruct->*field;
}
int main()
{
int my_variable = GetVariable(&MyStruct::a);
return 0;
}
你可以有一個指向成員的指針。似乎略顯粗略,但。 – chris 2014-10-20 11:54:34
如果我的結構在函數調用之前不存在,我該如何獲得指向成員的指針? – bergmeister 2014-10-20 11:56:51
結構或結構本身的實例?你不需要一個實例來指向成員。 – chris 2014-10-20 11:58:31