いくつかのクラスのメンバであるオブジェクトのメンバメソッドを呼び出す際に問題があります。私が意味したのは?メンバオブジェクトからの呼び出し方法
cposition.h
#ifndef CPOSITION_H
#define CPOSITION_H
class CPosition
{
public:
CPosition(QString name, QString description);
QString toString();
private:
QString m_name;
QString m_description;
};
#endif // CPOSITION_H
cposition.cpp
#include <QString>
#include "cposition.h"
CPosition::CPosition(QString name, QString description)
: m_name(name), m_description(description)
{
}
QString toString()
{
QString test("Test - method called!");
return test;
}
そして、私はメンバーの1がCPosition
オブジェクトへのポインタであるクラスCPerson
を持っている:私はクラスCPosition
を持っています。方法CPerson::getPosition
では、私は、ポインタが存在する場合にのみCPosition::getPosition
メソッドを呼び出すしたいと思います:私はこのプロジェクトをビルドするとき
#ifndef CPERSON_H
#define CPERSON_H
class CPosition;
class CPerson
{
public:
CPerson(QString name);
QString getPosition();
private:
QString m_name;
CPosition * m_position;
CEmployer * m_employer;
};
#endif // CPERSON_H
がcperson.cpp
#include <QTextStream>
#include <QString>
#include "cperson.h"
#include "cposition.h"
CPerson::CPerson(QString name) : m_name(name){}
QString CPerson::getPosition()
{
QString str;
QTextStream cout(&str);
if(m_position) //here check if pointer exist
{
cout << "Position: " << m_position->toString(); //<---- here is problem
}
else
cout << "Position doesn't exist!!!" << endl;
return str;
}
は私が手
cperson.hエラー:
C:\Qt\Projects\Tutorial\qt2\cperson.cpp:28: error: undefined reference to `CPosition::toString()'
私はQtCreator IDEを使用しています。誰でもこの問題について私を助けたり、これがなぜ機能していないのか説明できますか?
ありがとうございます!私は非常に愚かな間違いを作った:) – drewpol