c++ - C++ 运算符“=”重载 - 获取 lhs 上向量中的所有值等于 rhs 上的双精度值
问题描述
我正在尝试重载 C++ 中的“=”-运算符,但无法使其正常工作。我的想法是将向量中的所有元素更改为等于双精度值。
我尝试了几种方法,但无法使其正常工作(出现不同的错误)。希望有人能给我一些指导。下面是我现在卡住的地方。
MyClass &operator=(const MyClass &lhs){
for (int i = 0; i < lhs.vect.size(); i++){
lhs.vect[i] = this;
}
return lhs;
};
int main() {
MyClassName = 3; // Should change all element in the vector to 3
};
解决方案
这是正确的代码:
class MyClass {
public:
std::vector<double> vect;
MyClass& operator=(double v) {
for (int i = 0; i < vect.size(); i++) {
vect[i] = v;
}
return *this;
};
};
赋值运算符声明为 lhs -> this 类的成员,赋值为 rhs
推荐阅读
- winappdriver - 无法检查 WPF 应用程序?
- javascript - 如何使用 JavaScript 居中对齐文本?
- android - Jetpack Compose:自定义组件中的嵌套权重
- javascript - 未捕获的 ReferenceError: 要求未在 Object.url Electron-React-Typescrypt 中定义
- line - osmnx:项目点到街道段
- javascript - console.log 有效,但 return 无效
- reactjs - 如何在文本区域中呈现 django api 的答案?
- node.js - 为 https 连接创建 socket.io 服务器
- vba - 循环遍历一个代码块中每个命名范围的第一行
- sql - 我不明白的 TSQL 过滤器,我认为会返回相同数据的 2 个版本不