dra*_*nen 3 c++ operator-overloading
给定一个重载'[]'运算符的简单类:
class A
{
public:
int operator[](int p_index)
{
return a[p_index];
}
private:
int a[5];
};
Run Code Online (Sandbox Code Playgroud)
我想完成以下内容:
void main()
{
A Aobject;
Aobject[0] = 1; // Problem here
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我如何重置赋值'='运算符以使用'[]'运算符?
ken*_*ytm 16
您不会使=操作员超载.你返回一个参考.
int& operator[](int p_index)
{
return a[p_index];
}
Run Code Online (Sandbox Code Playgroud)
确保提供一个const版本:
const int& operator[](int p_index) const
{
return a[p_index];
}
Run Code Online (Sandbox Code Playgroud)
小智 5
让它返回一个参考:
int & operator[](int p_index)
{
return a[p_index];
}
Run Code Online (Sandbox Code Playgroud)
请注意,您还需要一个const版本,它确实返回一个值:
int operator[](int p_index) const
{
return a[p_index];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
284 次 |
| 最近记录: |