Всё бы хорошо, но вот компилятор со мною не согласен, пишет что я неверно со ссылками работаю, надо было сразу контекст описывать конкретно, а я написал абстрактно.
Вот так вот пишу:
Заголовочный файл:
C++ (Qt)
#ifndef TESTSUITE_H
#define TESTSUITE_H
#include <QString>
#include <QDomDocument>
#include <QDomNode>
#include <QFileInfo>
class Test;
class TestSuite;
class Test{
public:
Test();
Test(QDomElement aTest);
bool setContent(QDomElement aTest);
int getTotall();
protected:
QDomElement * gTest;
};
class TestSuite{
public:
TestSuite();
int openFile(QString aFileName);
Test getTest(int aTestItem);
private:
QString gFilePath;
QString gFileName;
protected:
QDomDocument * gTestSuite;
};
#endif // TEST_H
В реализации пишу:
C++ (Qt)
/********************************
Implementation of class Test
********************************/
Test::Test(){
gTest = new QDomElement;
}
Test::Test(QDomElement &aTest){
gTest = new QDomElement(aTest);
}
bool Test::setContent(QDomElement aTest){
if (!aTest.isNull()){
gTest = aTest;
return true;
} else
return false;
}
int Test::getTotall(){
return gTest->attributes().namedItem("totall").nodeValue().toInt();
}
В результате компилятор ругается :
E:/Exam/Exam/ExamTest/TestSuite.cpp:47: error: conversion from `Test*' to non-scalar type `Test' requested
У меня только один вопрос, как мне сделать при данном раскладе результат метода TestSuite::getTest(int index), в класс Test.
Это надо чтобы я сделал примерно так:
C++ (Qt)
TestSuite * vTs = new TestSuite;
qDebug() << vTs->openFile(QString("E:/Exam/Exam/ExamTest/2.xml"));
qDebug() << vTs->getTest(1).getTotal();
и на консоли получить требуемый аттрибут в XML