请问:在一个类中怎样得到其它类中变量的值呢?谢谢

时间:2021-09-10 20:38:47
在类1的头文件中定义了一个CString型变量(public的)
在对话框类2中怎样才能得到这个变量的值呢?

我要把这个变量的值显示在对话框类2的文本框中。

如果不用全局变量的话
谢谢。

8 个解决方案

#1


直接使用class1.m_str;就可以了。

#2


可是里面什么都没有呀

我在2中的OnInitDialog中调用的
如下:
CSelUser seluser;(CSelUser即为类1)

CString s_card_speed;
s_card_speed=seluser.test_card_speed ;

m_card_speed2.SetWindowText ( s_card_speed);
文本框中还是什么都没有呀


#3


seluser.test_card_speed 是空的吧。

如果CString没有赋过值,就是空的。除非你在CSelUser的构造函数中对他进行了赋值。

class CSelUser
{
public:
  CSelUser() { test_card_speed = "xxxx"; };
  ...
}

#4


这两各类之间肯定有某种关系吧?
想办法获得另一个你想引用的类的对象的指针就可以了
例如:pclass->m_data=?....

#5


对,是空的

但是在CSelUser.cpp中,它不是空的了,得到了应该有的值

我不能自己给它赋值,是个变量,需要根据别的得到它的值

谢谢

#6


可是要用的类的变量的值到别的类里就没了,就变成空的了

为什么呢?

请帮忙呀,谢谢

#7


luckyker(坷坷):
你所说的已经有值的对象并不是你在OnInitDialog()中使用的对象。
在OnInitDialog()中,你是重新构建了一个CSelUser的对象,这个对象跟你想要的对象显然不是一个,所以里面的变量是空的

如果你非要用那个对象中的变量的话,那只好在构造对话框的时候把对象的指针传给dlg对象喽

另:如果你的test_card_speed变量并不于具体的对象有关系的话,可以把它作为类CSelUser的一个静态成员变量,这样的话就可以CSelUser::test_cart_speed引用了。这时的变量属于类而不是对象了,所有的对象都公用这样一个变量。

建议看一下C++的类与对象部分就什么都明白了

#8


gz

#1


直接使用class1.m_str;就可以了。

#2


可是里面什么都没有呀

我在2中的OnInitDialog中调用的
如下:
CSelUser seluser;(CSelUser即为类1)

CString s_card_speed;
s_card_speed=seluser.test_card_speed ;

m_card_speed2.SetWindowText ( s_card_speed);
文本框中还是什么都没有呀


#3


seluser.test_card_speed 是空的吧。

如果CString没有赋过值,就是空的。除非你在CSelUser的构造函数中对他进行了赋值。

class CSelUser
{
public:
  CSelUser() { test_card_speed = "xxxx"; };
  ...
}

#4


这两各类之间肯定有某种关系吧?
想办法获得另一个你想引用的类的对象的指针就可以了
例如:pclass->m_data=?....

#5


对,是空的

但是在CSelUser.cpp中,它不是空的了,得到了应该有的值

我不能自己给它赋值,是个变量,需要根据别的得到它的值

谢谢

#6


可是要用的类的变量的值到别的类里就没了,就变成空的了

为什么呢?

请帮忙呀,谢谢

#7


luckyker(坷坷):
你所说的已经有值的对象并不是你在OnInitDialog()中使用的对象。
在OnInitDialog()中,你是重新构建了一个CSelUser的对象,这个对象跟你想要的对象显然不是一个,所以里面的变量是空的

如果你非要用那个对象中的变量的话,那只好在构造对话框的时候把对象的指针传给dlg对象喽

另:如果你的test_card_speed变量并不于具体的对象有关系的话,可以把它作为类CSelUser的一个静态成员变量,这样的话就可以CSelUser::test_cart_speed引用了。这时的变量属于类而不是对象了,所有的对象都公用这样一个变量。

建议看一下C++的类与对象部分就什么都明白了

#8


gz

相关文章