私はc ++を初めて使用しますが、これには困惑しています。クラスが構造体のデータにアクセスできるように、構造体をクラスに渡したいです (技術的には同じであることはわかっています)。クラス内の構造体に変更がないため、参照またはコピーとして渡されるかどうかは気にしません。参照はおそらくパフォーマンスに優れていると言われています。構造体のメンバーを個別に渡すと、すべて正常に動作するようになりますが、実際のバージョンには約 30 のメンバーがあるため、それらを個別に渡すことは最適なオプションではありません。
私のメインcpp:
#include "stdafx.h"
#include "myClass.h"
#include <iostream>
using namespace std;
struct foo
{
int num;
double dbl;
};
int _tmain(int argc, _TCHAR* argv[])
{
foo bar;
bar.dbl=3.14;
bar.num=42;
baz qux(); //bar needs to be passed here
cout<<qux.getSum()<<endl;
return 0;
}
クラスヘッダー:
using namespace std;
class baz
{
public:
baz(); //This is where type of bar (foo) is declared
void setSum(int, double);
double getSum();
private:
double sum;
};
クラス cpp:
#include "stdafx.h"
#include "myClass.h"
#include <iostream>
using namespace std;
baz::baz() //this is where bar is called
{
setSum(bar.num, bar.dbl);
}
void baz::setSum(int num, double dbl)
{
sum=num*dbl;
}
double baz::getSum()
{
return sum;
}
質問の要点は、どうすればバーをバズに入れることができるかということです。