从第三个类更改所有类的对象
Change object of all classes from a third class
>我在执行以下操作时遇到了一些问题,我有 2 个对象(Class1.h
和 Class2.h
的实例),第三个对象作为变量(Obj.h
的实例),当我从其他类(Starter.h
)更改第一个对象之一中的第三个对象时,我希望更改会出现在另一个对象中。我正在使用指针来做到这一点。例如:
主.cpp
Class1* c1 = new Class1;
Class2* c2 = new Class2;
int main(int argc, char **argv)
{
printf("Teste!");
Obj* obj = new Obj();
obj->setX(4);
c1->setObj(obj);
c2->setObj(obj);
Starter s;
printf("C
现在,您正在main方法中调用类的默认构造函数Starter:
Starter s;
因此,在此实例中,Starter obj 将未初始化。更改此函数以调用正确的构造函数:
Starter s(c1);
但是,您的初学者类目前缺少其 Class1 实例变量的访问器方法。因此,即使您调用正确的构造函数,您也无法访问 Class1 intance c1 中的 obj 实例。尝试将 Class1* getClass1() 添加到您的入门类中,您应该准备好了。
但是,您的示例还有其他一些问题:
- 初学者的默认构造函数将其实例变量保留为未初始化状态。这将产生未定义的行为。
- 尝试习惯C++初始值设定项列表语法(请参阅 http://www.learncpp.com/cpp-tutorial/101-constructor-initialization-lists/)
- 尝试修复变量名称
相关文章:
- 模板-模板参数推导:三个不同的编译器三种不同的行为
- 在 2D 向量中使用第三个 [ ] 有什么意义?
- 如何通过按下第三个窗口中的按钮,将QString从一个窗口获取到另一个窗口
- 如何知道n!是否可以表示为三个连续数字的乘法?
- 我有三个 getline,但是一旦编译,输入就太多了
- 我遇到了黑客排名中的问题"TWO STRINGS"的三个测试用例的分段错误。原因是什么?
- 在制作合并分类项目C 的第三个对象时,请堆叠溢出
- 如何使用三个参数化构造函数的rand()函数初始化对象的数组
- 将三个 QGraphicsRectItems 连接到一个对象中
- 使用init_seg时如何为三个C++对象命名部分/组
- 设计具有变体字段的文本类型类,其中可以存储一个或三个对象
- 在C 中,可以从第三个共享对象访问其他两个不同共享对象
- 继承基类,定义基类的原型方法,但从第三个对象调用子类的方法
- C++ count_if对象中的第三个参数
- C++如何将 Vector 的两个对象合并、联合、相交到新的第三个对象中
- 从第三个类更改所有类的对象
- 可以使用ofstream对象作为backtrace_symbols_fd()的第三个参数吗?
- 将三个不同类的对象存储在一个数组中
- 为什么在比较三个对象时要返回引用
- 使用vector std::find和用户创建的对象(第三个参数)