class A
{
public:
int it;
A():it(100)
{
}
};
class B
{
public:
A a;
int getvalue();
protected:
private:
};
int B::getvalue()
{
return a.it;
}
int _tmain(int argc, _TCHAR* argv[])
{
B b;
int kk = b.getvalue();
return 0;
}
类似如上的调用在Qt中可以应用吗?为什么我在Qt中实现不了呢,高手指点
4 个解决方案
#1
class CGMBLogin : public QDialog
{
Q_OBJECT
public:
explicit CGMBLogin(QWidget *parent = 0);
~CGMBLogin();
public:
//QString getCurrentname();
UserLoginInfo m_UserInfo;
void init(UserLoginInfo UserInfo);
void autoLogin();
void setWindowReadOnly(bool readOnly);
protected:
void mousePressEvent(QMouseEvent *e);
void mouseMoveEvent(QMouseEvent *e);
void mouseReleaseEvent(QMouseEvent *);
void showEvent(QShowEvent *e);
public slots:
QString getCurrentname();
private slots:
void loginSuccessed( const QString &userTicket );
void onGetProductPermitEvent();
public Q_SLOTS:
void onLoging(bool loging);
void onLoginFail(QString);
void onUpdateEvent(int updateType);
void onTimer();
//QString getCurrentname();
protected:
void paintEvent(QPaintEvent *);
void createUpdateThread();
void initUpdateTimer();
public:
//Ui::CGMBLogin* getUi();
Ui::CGMBLogin *ui;
private:
QString m_strUserName;
QString m_strPasswd;
// 以下两个变量用于移动窗口
bool m_bMoving;
QPoint pressPoint; //鼠标按下去的点
CGMBOptions *m_LoginOptions;
CGMBLoginThread *m_loginTread;
GSLOnlineUpdateThread *m_updateThread;
QTimer *m_timer;
Q_SIGNALS:
void ShowUserInfo();
void loginRequested(const QString &userName, const QString &passWord, const bool autoLogin,const bool savePassWord);
//QString getCurrentname();
};
class CGMBLoginEdit :public QLineEdit
{
Q_OBJECT
public:
UserLoginInfo m_userInfoLog;
explicit CGMBLoginEdit(QWidget* parent=0);
Ui::CGMBLogin *m_uilog;
void clearText();
signals:
void focused();
void clicked();
protected:
void focusInEvent(QFocusEvent *);
void focusOutEvent(QFocusEvent *);
void mousePressEvent(QMouseEvent *);
private:
QString m_hintString;
CGMBLogin *m_Login;
//extern QString m_strUserName;
};
我该如何写QString getCurrentname()它呢,为何编译没问题,一运行就出错,堆栈出错。
{
Q_OBJECT
public:
explicit CGMBLogin(QWidget *parent = 0);
~CGMBLogin();
public:
//QString getCurrentname();
UserLoginInfo m_UserInfo;
void init(UserLoginInfo UserInfo);
void autoLogin();
void setWindowReadOnly(bool readOnly);
protected:
void mousePressEvent(QMouseEvent *e);
void mouseMoveEvent(QMouseEvent *e);
void mouseReleaseEvent(QMouseEvent *);
void showEvent(QShowEvent *e);
public slots:
QString getCurrentname();
private slots:
void loginSuccessed( const QString &userTicket );
void onGetProductPermitEvent();
public Q_SLOTS:
void onLoging(bool loging);
void onLoginFail(QString);
void onUpdateEvent(int updateType);
void onTimer();
//QString getCurrentname();
protected:
void paintEvent(QPaintEvent *);
void createUpdateThread();
void initUpdateTimer();
public:
//Ui::CGMBLogin* getUi();
Ui::CGMBLogin *ui;
private:
QString m_strUserName;
QString m_strPasswd;
// 以下两个变量用于移动窗口
bool m_bMoving;
QPoint pressPoint; //鼠标按下去的点
CGMBOptions *m_LoginOptions;
CGMBLoginThread *m_loginTread;
GSLOnlineUpdateThread *m_updateThread;
QTimer *m_timer;
Q_SIGNALS:
void ShowUserInfo();
void loginRequested(const QString &userName, const QString &passWord, const bool autoLogin,const bool savePassWord);
//QString getCurrentname();
};
class CGMBLoginEdit :public QLineEdit
{
Q_OBJECT
public:
UserLoginInfo m_userInfoLog;
explicit CGMBLoginEdit(QWidget* parent=0);
Ui::CGMBLogin *m_uilog;
void clearText();
signals:
void focused();
void clicked();
protected:
void focusInEvent(QFocusEvent *);
void focusOutEvent(QFocusEvent *);
void mousePressEvent(QMouseEvent *);
private:
QString m_hintString;
CGMBLogin *m_Login;
//extern QString m_strUserName;
};
我该如何写QString getCurrentname()它呢,为何编译没问题,一运行就出错,堆栈出错。
#2
CGMBLogin *m_Login;
#3
QString CGMBLogin::getCurrentname()
{
return m_strUserName;
}
{
return m_strUserName;
}
#4
代码不全,有两个地方要注意:首先,Ui::CGMBLogin 和CGMBLogin要搞清楚,其次,CGMBLogin *m_Login你new出来了吗?
#1
class CGMBLogin : public QDialog
{
Q_OBJECT
public:
explicit CGMBLogin(QWidget *parent = 0);
~CGMBLogin();
public:
//QString getCurrentname();
UserLoginInfo m_UserInfo;
void init(UserLoginInfo UserInfo);
void autoLogin();
void setWindowReadOnly(bool readOnly);
protected:
void mousePressEvent(QMouseEvent *e);
void mouseMoveEvent(QMouseEvent *e);
void mouseReleaseEvent(QMouseEvent *);
void showEvent(QShowEvent *e);
public slots:
QString getCurrentname();
private slots:
void loginSuccessed( const QString &userTicket );
void onGetProductPermitEvent();
public Q_SLOTS:
void onLoging(bool loging);
void onLoginFail(QString);
void onUpdateEvent(int updateType);
void onTimer();
//QString getCurrentname();
protected:
void paintEvent(QPaintEvent *);
void createUpdateThread();
void initUpdateTimer();
public:
//Ui::CGMBLogin* getUi();
Ui::CGMBLogin *ui;
private:
QString m_strUserName;
QString m_strPasswd;
// 以下两个变量用于移动窗口
bool m_bMoving;
QPoint pressPoint; //鼠标按下去的点
CGMBOptions *m_LoginOptions;
CGMBLoginThread *m_loginTread;
GSLOnlineUpdateThread *m_updateThread;
QTimer *m_timer;
Q_SIGNALS:
void ShowUserInfo();
void loginRequested(const QString &userName, const QString &passWord, const bool autoLogin,const bool savePassWord);
//QString getCurrentname();
};
class CGMBLoginEdit :public QLineEdit
{
Q_OBJECT
public:
UserLoginInfo m_userInfoLog;
explicit CGMBLoginEdit(QWidget* parent=0);
Ui::CGMBLogin *m_uilog;
void clearText();
signals:
void focused();
void clicked();
protected:
void focusInEvent(QFocusEvent *);
void focusOutEvent(QFocusEvent *);
void mousePressEvent(QMouseEvent *);
private:
QString m_hintString;
CGMBLogin *m_Login;
//extern QString m_strUserName;
};
我该如何写QString getCurrentname()它呢,为何编译没问题,一运行就出错,堆栈出错。
{
Q_OBJECT
public:
explicit CGMBLogin(QWidget *parent = 0);
~CGMBLogin();
public:
//QString getCurrentname();
UserLoginInfo m_UserInfo;
void init(UserLoginInfo UserInfo);
void autoLogin();
void setWindowReadOnly(bool readOnly);
protected:
void mousePressEvent(QMouseEvent *e);
void mouseMoveEvent(QMouseEvent *e);
void mouseReleaseEvent(QMouseEvent *);
void showEvent(QShowEvent *e);
public slots:
QString getCurrentname();
private slots:
void loginSuccessed( const QString &userTicket );
void onGetProductPermitEvent();
public Q_SLOTS:
void onLoging(bool loging);
void onLoginFail(QString);
void onUpdateEvent(int updateType);
void onTimer();
//QString getCurrentname();
protected:
void paintEvent(QPaintEvent *);
void createUpdateThread();
void initUpdateTimer();
public:
//Ui::CGMBLogin* getUi();
Ui::CGMBLogin *ui;
private:
QString m_strUserName;
QString m_strPasswd;
// 以下两个变量用于移动窗口
bool m_bMoving;
QPoint pressPoint; //鼠标按下去的点
CGMBOptions *m_LoginOptions;
CGMBLoginThread *m_loginTread;
GSLOnlineUpdateThread *m_updateThread;
QTimer *m_timer;
Q_SIGNALS:
void ShowUserInfo();
void loginRequested(const QString &userName, const QString &passWord, const bool autoLogin,const bool savePassWord);
//QString getCurrentname();
};
class CGMBLoginEdit :public QLineEdit
{
Q_OBJECT
public:
UserLoginInfo m_userInfoLog;
explicit CGMBLoginEdit(QWidget* parent=0);
Ui::CGMBLogin *m_uilog;
void clearText();
signals:
void focused();
void clicked();
protected:
void focusInEvent(QFocusEvent *);
void focusOutEvent(QFocusEvent *);
void mousePressEvent(QMouseEvent *);
private:
QString m_hintString;
CGMBLogin *m_Login;
//extern QString m_strUserName;
};
我该如何写QString getCurrentname()它呢,为何编译没问题,一运行就出错,堆栈出错。
#2
CGMBLogin *m_Login;
#3
QString CGMBLogin::getCurrentname()
{
return m_strUserName;
}
{
return m_strUserName;
}
#4
代码不全,有两个地方要注意:首先,Ui::CGMBLogin 和CGMBLogin要搞清楚,其次,CGMBLogin *m_Login你new出来了吗?