C++ c++;-重载数组下标运算符

C++ c++;-重载数组下标运算符,c++,C++,我试图为从mysql++库中的mysqlpp::StoreQueryResult继承的类提供自定义异常处理机制。但我发现很难找到一种方法来引用类中的实际对象,因此我无法正确使用向量操作at(),以便在索引中检索值 这是标题 /* MySQLQueryResult.h */ #ifndef MYSQLQUERYRESULT_H #define MYSQLQUERYRESULT_H #include <mysql++.h> #include <result.h> na

我试图为从
mysql++
库中的
mysqlpp::StoreQueryResult
继承的类提供自定义异常处理机制。但我发现很难找到一种方法来引用类中的实际对象,因此我无法正确使用向量操作
at()
,以便在索引中检索值

这是标题

/* MySQLQueryResult.h */


#ifndef MYSQLQUERYRESULT_H
#define MYSQLQUERYRESULT_H

#include <mysql++.h>
#include <result.h>

namespace  MinesScanner {

    namespace MoonStone {

        class MySQLQueryResult : public mysqlpp::StoreQueryResult  {
        public:

            MySQLQueryResult();


            MySQLQueryResult(const MySQLQueryResult &other);

            MySQLQueryResult& operator=(const MySQLQueryResult &other);

            mysqlpp::Row& operator[](int index);

        private:

            int _dat;



        };

    }

}

#endif  /* MYSQLQUERYRESULT_H */
/*MySQLQueryResult.h*/
#ifndef MYSQLQUERYRESULT_H
#定义MYSQLQUERYRESULT_H
#包括
#包括
名称空间扫雷器{
名称空间月光石{
类MySQLQueryResult:public mysqlpp::StoreQueryResult{
公众:
MySQLQueryResult();
MySQLQueryResult(const MySQLQueryResult&other);
MySQLQueryResult&operator=(常量MySQLQueryResult&other);
mysqlpp::行和运算符[](int索引);
私人:
国际数据;
};
}
}
#endif/*MYSQLQUERYRESULT\u H*/
这是源文件

/* MySQLQueryResult.cpp */

#include "MySQLQueryResult.h"

namespace MinesScanner {

    namespace MoonStone {

        MySQLQueryResult::MySQLQueryResult( )
    : StoreQueryResult( )
    {
    }

    MySQLQueryResult::MySQLQueryResult( const StoreQueryResult &ob )
    : StoreQueryResult( ob )
    {
    }

    MySQLQueryResult& MySQLQueryResult::operator=( const StoreQueryResult &ob )
    {

        StoreQueryResult::operator=( ob ) ;
        return *this ;

    }

    mysqlpp::Row& MySQLQueryResult::operator[]( int index )
    {


        try {

            std::cout << " Called " << this->at( index ) << std::endl ;
            return this->at( index ) ;
        } catch ( std::exception& excpn_ob ) {
            std::cerr << " Exception caught : " << excpn_ob.what( ) << std::endl ;
        }


    }


    }

}
/*MySQLQueryResult.cpp*/
#包括“MySQLQueryResult.h”
名称空间扫雷器{
名称空间月光石{
MySQLQueryResult::MySQLQueryResult()
:StoreQueryResult()
{
}
MySQLQueryResult::MySQLQueryResult(const-StoreQueryResult&ob)
:StoreQueryResult(ob)
{
}
MySQLQueryResult&MySQLQueryResult::operator=(const-StoreQueryResult&ob)
{
StoreQueryResult::运算符=(ob);
归还*这个;
}
mysqlpp::行和MySQLQueryResult::运算符[](int索引)
{
试一试{
标准::cout
但它不起作用

看起来您要重载
const
版本的
下标运算符

const mysqlpp::Row& operator[](int index) const;
但它不起作用

看起来您要重载
const
版本的
下标运算符

const mysqlpp::Row& operator[](int index) const;
但它不起作用

看起来您要重载
const
版本的
下标运算符

const mysqlpp::Row& operator[](int index) const;
但它不起作用

看起来您要重载
const
版本的
下标运算符

const mysqlpp::Row& operator[](int index) const;

您的程序是否编写了您在下标运算符中定义的输出消息?是,它的打印“调用”了数组下标运算符的每次使用?您的程序是否编写了您在下标运算符中定义的输出消息?是,它的打印“调用”对于数组下标运算符的每次使用,是否有您在下标运算符中定义的程序写入输出消息?是,对于数组下标运算符的每次使用,其打印“调用”是否有您在下标运算符中定义的程序写入输出消息?是,其打印“调用”每次使用数组下标运算符都会修复问题。非常感谢。是的,修复了问题。非常感谢。是的,修复了问题。非常感谢。是的,修复了问题。非常感谢。是的,修复了问题。非常感谢。