基本C - 构造contaning对象引用,并将其作为方法参数传递
Basic C++ - struct contaning object references and pass as method parameter
我习惯了C#和MATLAB,我正在尝试使用线性代数的EIGEN模板库进行简单的C 程序。
对不起,但是我在基础上挣扎:
- 在struct in Struct 中存储Matrix3d eigen
- 将参数传递给方法
- 返回一个包含特征对象参考的结构。
示例代码(不是编译,C#在此处痛苦中的开发人员):
struct MyStruct
{
Matrix3d* K1; //Is that the right way, using pointers?
Matrix3d* K2;
};
int main()
{
//Case 1
MyStruct* A = new MyStruct();
A->K1 = &(Matrix3d)Matrix3d::Random();
MyStruct* result = MyMethod(A);
//Case 2 - I noticed that everybody uses case 1, what is the difference?
MyStruct B;
B.K1 = &(Matrix3d)Matrix3d::Random();
B.K1(0,0) = 1; // Not working. How can I access it?
MyStruct* result = MyMethod(&B);
}
*MyStruct DoSomething(MyStruct& input)
{
MyStruct result;
result.K1 = ...
return &result;
}
不熟悉特征。但是我可以在C 中给您一些有关编程的一般建议。
- 在struct in Struct
中存储Matrix3d eigen
如果您需要分配Matrix3D对象,我建议您在结构或类的构造函数和驱动器中进行资源管理。
还尝试使用智能指针 c type pointer。
参考:raii。
- 将参数传递给方法
通常更喜欢通过参考(如果可以的话)通过参考(或const参考)。
- 返回一个包含特征对象参考的结构。
返回值确实取决于。如果您仅在输入参考上进行修改,则可能不需要返回值,也可以在Mystruct对象小时按值返回。
正如评论所说,总的来说,您需要C 中资源管理的基本思想和实施方式。您可能想找到一些书籍并学习这些主题。
相关文章:
- 将成员函数指针作为参数传递给模板方法
- 在 C++ 中将非指定类型作为参数传递的最佳方法?
- 如何将成员函数作为参数传递并在派生对象上执行方法列表
- 如何将带有参数的方法传递给线程以执行?
- 在C++中传递数组作为函数参数的方法
- 将带有模板化方法的类作为带有GCC的模板参数传递
- 将派生类作为参数传递给方法,该方法是具有智能指针的基类
- 将私有数据成员作为默认参数传递给该类的公共方法时出错
- 如何将提升回调作为参数传递给方法?
- 将方法作为模板化参数传递 C++11
- 将 std::ofstream 对象作为参数传递给类方法
- 将给定的 vararg 参数传递给另一个函数的适当方法是什么?
- 将指针类方法作为参数传递给其他类方法C
- 如何将基类方法超载作为参数传递到C 中的模板类
- 将非静态数据成员作为默认参数传递给方法
- 将数组作为函数参数传递,并在其上调用开始/结束方法
- 将对象数组作为参数传递的最佳方法是什么
- 将参数传递给模板函数的方法
- 基本C - 构造contaning对象引用,并将其作为方法参数传递
- C++ "Best"参数传递方法