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