想问一下一个类怎么使用另一个类的成员变量。具体的是我建了一个基于对话框的类,它包含很多的文本框,我把文本框的输入保存在CString变量中,我想在另一个类中使用这些变量,要怎么用?谢谢啦!!!

解决方案 »

  1.   

    想问一下一个类怎么使用另一个类的成员变量。
    ========================================
    如果类A要用类B的成员,那么类A必须要得到一个类B的实例,或是实例指针
      

  2.   

    我是想在多个类中同时使用这些变量,如果每个类中都声明一个对象,能保证这些变量的值都相同吗?
    ========================
    不能,不同的类实例有各自不同的变量数据,你最好记住,你程序中处理的是类的对象,它才是实际的,而不是处理类本身,比如int i;int是一个类,i是类的对象,你处理的是i,而不是int.
      

  3.   

    还是不懂,我再把问题说一下,我是建了一个基于对话框的类,它包括一些初始条件的设置,是通过文本框控件输入的,界面上还有一个按钮用来保存输入的参数,存在CString型的变量中,在另几个个类中,我要用到这些参数,对其进行计算处理,并显示,要保证数据的一直性。不知道有什么办法,请大家帮忙了,谢谢啦!!!
    WizardK的方法不是很懂,能不能具体说一下,这种方法能保证各个类中数据的一直性吗?!
      

  4.   

    可以把你那个对话框类的变量声明为static类型,比如public:
    static int nSum;这样在每个实例中是一样的值。也可以在实例化之前就赋值。
      

  5.   

    对于CString,它是类,没法声明成静态的吧???谢谢啦!晕晕的@@
      

  6.   

    对于CString,它是类,没法声明成静态的吧???谢谢啦!晕晕的@@
    ====================================
    第一:CString是类,但是定义它为一个成员时可以设为静态的.
    第二:可以不这样做,你的对话框类写好后,你一定要弹出它,那么一定有一个地方定义了对话框类的对象吧,不要将它定义成某一个函数的局部变量,你只要将这个对话框类对象定义成全局变量就行了.因为整个程序只有这一个实例,所以没有什么一致性问题.
      

  7.   

    Too many ways.
    1. Set class B as a freind class of class A, so that every B instance can directly access every member of the instance of class A.
    2. Attach a class A pointer in a member function of B, such as:
       class B
       {
          A* m_pA = NULL;
          public:
                 void Attach(const A* pA){m_pA = pA;}
       }
    3. Associate a class A instance with a class B instance by introducing another class. Think about Document-View architecture such as CMultiDocTemplate.
      

  8.   

    wltg2001(红猪)的方法二可以了,谢谢啦,也谢谢以上各位!!!!
    还有想问一下wltg2001(红猪)说的第一中可以声明为静态的,我声明后怎么是有错误
    error LNK2001: unresolved external symbol "public: static class CString CParaSet::strName" (?strName@CParaSet@@2VCString@@A)
    Debug/Test.exe : fatal error LNK1120: 1 unresolved externals请教一下,谢谢啦!
      

  9.   

    不好意思,上面说的和你的问题不同,你的问题是这样的,定义一个变量为静态变量时,一定要在CPP文件中初始化一下,如下所示:
    static CString sz;//这是写在H文件中类声明中的.CStrng 类名::sz="";//这是写在CPP文件中的.
      

  10.   

    谢谢wltg2001(红猪) 啦,明白了,嘻嘻!
      

  11.   

    Very urgly resolution and you absurdly enjoy it! What a shit!