【发布时间】:2019-04-25 07:12:20
【问题描述】:
我想在我的类中添加一个重载运算符 []。运算符重载不是我以前必须做的事情。
我想编写一个实现来执行以下操作:
myclass a;
a["test"] = 123;
int test = a["test"];
到目前为止,在我的课堂上,原型看起来是这样的:
string operator[](const char* cpszLabel);
实现不完整,如下所示:
string myclass::operator[](const char* cpszLabel) {
string strContent;
if ( cpszLabel != nullptr ) {
}
return strContent;
}
我不确定如何引用正在分配的数据,或者这是否也需要重载“=”?
我为 '=' 运算符添加了一个重载,但它没有被调用:
原型:
string operator=(int intData);
实施:
string myclass::operator=(int intData) {
char szString[24];
sprintf(szString, "\"%d\"", intData);
return string(szString);
}
【问题讨论】:
-
评论不用于扩展讨论;这个对话是moved to chat。