将类指针传递给一个函数
问题描述:
我想在另一个函数中使用不同的WText实例,但是因为我想只有一个控制函数,所以我想在那里传递它们。将类指针传递给一个函数
带有当前设置的代码编译但由于某些内存故障而失败,我不明白。
class mode : public WApplication
{
//..
private:
//..
void someFunc();
void control(WText* texty);
WText* text;
WText* text2;
WText* text3;
//...etc
};
void mode::someFunc(){
control(text); //how to pass it?
//might pass text2 or text3 as well
}
void mode::control(WText* texty){
texty->setText("blabla");
//..
}
答
文本成员是指向对象WText, 你需要做的第一件事是创建一个新的WText对象:
void mode::someFunc() {
text = new WText();
control(text);
}
请记住销毁文本对象后使用。
+0
谢谢,实际上我已经调用了text = new WText();在控制(文本)后没有注意到它。 :( – Levi
+0
或者也许在构造函数中设置你需要的东西? – doctorlove
此代码不会失败,并出现一些内存错误!请提供[mcve] – user463035818
*当*和*哪里*程序失败?它如何失败(崩溃或意外的结果)?你用调试器来帮助你发现问题吗?内存调试器如[Valgrind](http://valgrind.org/)如何? –
为什么是“文本”和其他指针?只是从来没有使用原始的拥有指针作为成员 – user463035818