C++ 如何在c+;中删除此F允许错误+;?

C++ 如何在c+;中删除此F允许错误+;?,c++,arrays,error-handling,compiler-errors,C++,Arrays,Error Handling,Compiler Errors,将“const IntBag”作为“this”参数传递将丢弃限定符[-fppermissive] 这是我的代码: ''C++ ** >int-IntBag::operator[](int-index){//get数组项 >返回数组\[index]; > } > >IntBag::IntBag(const IntBag&a){//copy constructor >size=a.getSize(); >对于(int i=0;i int val=a[i]; >数组_i]=val;

将“const IntBag”作为“this”参数传递将丢弃限定符[-fppermissive]

这是我的代码: ''C++ **

>int-IntBag::operator[](int-index){//get数组项
>返回数组\[index];
>     }
>     
>IntBag::IntBag(const IntBag&a){//copy constructor
>size=a.getSize();
>对于(int i=0;i int val=a[i];
>数组_i]=val;
>       }
>     }
>     
>int IntBag::getSize()常量{//获取数组的大小
>返回大小;
>     }
>     
>IntBag&IntBag::运算符=(常量IntBag&a){
>对于(int i=0;i数组_i]=a[i];
>       }
>     }
**


我的错误是: $g++intbag.cpp intbag.cpp:在复制构造函数“intbag::intbag(const intbag&)”中: intbag.cpp:19:16:错误:将“const intbag”作为“this”参数传递将丢弃限定符[-fppermissive] 19 | int val=a[i]; | ^ intbag.cpp:12:5:注意:调用“int intbag::operator” 12 | int IntBag::运算符[](int index){//get数组项 | ^~~~~~ intbag.cpp:在成员函数“intbag&intbag::operator=(const intbag&)”中: intbag.cpp:30:18:错误:将“const intbag”作为“this”参数传递将丢弃限定符[-fppermissive] 30 |数组i]=a[i]; | ^ intbag.cpp:12:5:注意:调用“int intbag::operator” 12 | int IntBag::运算符[](int index){//get数组项 | ^~~~~~ intbag.cpp:32:1:警告:函数中没有返回非void[-Wreturn type]的返回语句 31 | } +++|+返回*这个; 32 | } |^


如何消除C++中的错误? 不要对常量值调用非常量限定成员函数。在这种情况下,非常量限定成员函数是下标运算符重载,常量值是赋值运算符重载的参数
const IntBag&a


假定下标运算符重载不修改对象的状态,也不返回非const引用,则不需要它不具有const限定性。因此,简单的解决方案是声明下标操作符const。< /p>不要张贴文本图像。复制文本。不要用C++标记来回答C++问题。因此,我声明了现在我收到另一条错误消息:“/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../../../../../../../x86_64-pc-cygwin/bin/ld:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../../../../../../libcygwin.a(libcmain.o):在函数

main':/usr/src/debug/cygwin-3.1.7-1/winsup/cygwin/lib/libcmain.c:37中:未定义对
WinMain'/usr/src/debug/cygwin-3.1.7-1/winsup/cygwin/libcmain.c的引用:(.text.startup+0x82):根据未定义的符号'WinMain'集合2:ld返回1退出状态截断重新定位
> int IntBag::operator[](int index){     //get array item
>         return array_[index];
>     }
>     
>     IntBag::IntBag (const IntBag& a){        //copy constructr
>       size=a.getSize();
>       for(int i=0; i<size; i++){
>         int val=a[i];
>         array_[i]=val;
>       }
>     }
>     
>     int IntBag::getSize()const{    //get the size of the array
>       return size;
>     }
>     
>     IntBag& IntBag::operator = (const IntBag& a){
>       for(int i= 0; i< a.getSize(); i++) {
>         array_[i]=a[i];
>       }
>     }