从第三个类更改所有类的对象

Change object of all classes from a third class

本文关键字:对象 三个      更新时间:2023-10-16

>我在执行以下操作时遇到了一些问题,我有 2 个对象(Class1.hClass2.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/)
- 尝试修复变量名称