从main()将类对象实例作为参数将参数传递到另一个类对象实例
Pass class object instance as parameter to another class object instance from main()
我在将类对象实例作为参数传递给另一个类对象实例的 main()
函数的问题。基本上问题在下面的代码内部:
#include <something>
#include "another_thing"
class A
{
void method1()
{
;
}
void method2()
{
;
}
};
class B
{
// Define an object of type class A
A class_object;
// Constructor
B(A &passed_object)
{
class_object = passed_object;
//other stuff here
}
void method1()
{
;
}
void method2()
{
;
}
};
int main()
{
A firstObject;
B secondObject(firstObject);
// Do something that changes A attributes;
return 0;
}
问题是在main()
执行期间,更改了FirstObject的某些属性,但是在B级BENSEN中,我看不到此更改。
编辑基于@holyblackcat提示,以这种方式解决:
A &class_object;
中的修改A class_object;
,从构造函数中删除了class_object = passed_object;
,并更改了B(A &passed_object) : class_object(passed_object){}
B(A &passed_object){}
由于 B()
的参数是参考,只需将 firstObject
传递给它确实没有复制。
,但您没有将A class_object;
作为参考。当您在B()
中分配它时,您正在制作副本。
您需要将课程字段作为参考:A &class_object;
。
并且由于您必须初始化 用它应该引用的对象的引用,因此您不得不使用成员初始化器列表:
B(A &passed_object) : class_object(passed_object) {}
相关文章:
- 对象实例化调用构造函数的次数太多
- C++ 中的基本单一实例对象
- 在 C++ 中,类实例对象 do memcpy 总是崩溃
- C++:在函数中使用当前实例(对象)
- 单一实例对象是否通过线程安全返回shared_ptr
- std::system 实例化单一实例对象时的异常
- 使用unique_ptr的单一实例对象
- 如果已创建 mongocxx::实例对象,则无法创建该对象
- 单一实例对象的未解决外部符号链接错误
- 实例对象如何查看函数的对象参数的私有成员?
- 在C++中调用单一实例对象的正确方法
- 声明模板化实例对象的函数指针
- 如何在"boost::function"中访问类实例(对象)指针?
- 删除单一实例对象 cpp 时出现内存泄漏
- 从 EXE 和 DLL 访问单一实例对象中的成员变量
- 如何在 C++11 中将 vector 与引用类型实例对象一起使用
- 为什么在构造函数退出时创建新的实例(对象)
- "类实例对象"未在此范围内声明
- c++实例对象的函数指针
- 如何正确存储多个实例对象