A类中定义一变量CString str;
在A类的某个函数中
test()
{str = “abc”}//对str赋值
然后在B类中调用A类中的str,我是这么做的,但是str传过来为空:A a;
CString b=a.str;
请问各位大虾,要怎么做才对呢?

解决方案 »

  1.   

    可以在A类中写个函数
    CString Getstr()
    {
     return str;
    }
    然后在B类中调用
      

  2.   

    其中A类中的str不是固定不变,是根据要求可更改的
      

  3.   

    我把你的情况模拟了一遍,确实是不行的.
    你的错误我认为主要是:在类的内部进行了赋值.CString b=a.str; 这是不允许的.
    你可以在main内部声明一个B的对象或者声明一个B的全局对象后再试.
      

  4.   

    按照robin_yao的说法试了下,还是不行啊
      

  5.   

    test 函数还未调用, str 肯定是没有值的。请多看一些关于 C++ 的书,打好基础。class A
    {
    public:
    CString str;
    A()
    {
    test();
    }

    void test()
    {
    str = "abc"
    }//对str赋值
    };A a;
    CString b = a.str;
      

  6.   

    str = "abc" //后面漏了分号
      

  7.   

    test函数调用过,楼上的这种方法不行吧
      

  8.   

    quote:test函数调用过,楼上的这种方法不行吧
        我试过了,aa3000(杀手K)的方法是可行的。不知楼主是怎么用的。
      

  9.   

    同意楼上看法,aa3000(杀手K)的方法是可行的
      

  10.   

    aa3000(杀手K)的这种做法是在构造函数中就调用test()对吧,而我实际的程序不是这样的,str的值是进行其他操作得到的,是可变的。
      

  11.   

    确保在执行
    A a;
    a.test();  //要确保str赋值。。再执行下面的语句
    CString b = a.str;
      

  12.   

    建义看Thinking in c++