sort(arm + 1, arm + 1 + i, cmd1); arms temp(arm[1]);在类赋值时出现引发异常,读取访问权限冲突应该如何修改
时间: 2024-01-29 18:05:03 浏览: 50
这个问题可能是因为你在类中没有正确地声明拷贝构造函数和赋值运算符。当你尝试在类外部进行拷贝构造函数或赋值运算符时,可能会出现访问权限问题。
为了解决这个问题,你可以在类中声明一个公共的拷贝构造函数和赋值运算符,并保证它们能够正确地访问类的私有成员变量。
例如,你可以在类中添加以下代码:
```cpp
class arms {
public:
arms(const arms& other);
arms& operator=(const arms& other);
// ...
private:
int some_private_member;
// ...
};
```
然后在类外部实现这两个函数:
```cpp
arms::arms(const arms& other) {
some_private_member = other.some_private_member;
// ...
}
arms& arms::operator=(const arms& other) {
if (this != &other) {
some_private_member = other.some_private_member;
// ...
}
return *this;
}
```
这样就可以保证在类外部进行拷贝构造函数或赋值运算符时不会出现访问权限问题。
阅读全文