- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我想要具有名称和单位的 double 值,但我想像使用简单 double 值一样使用它们。例如我想像这样使用它们:
int main(){
NamedValue a("a","m");
NamedValue b("b","m");
NamedValue c("c","m^2");
a = 3;
b = 5;
c = a*b;
std::cout << a << b << c << std::endl;
return 0;
}
输出应该是:
a = 3 m
b = 5 m
c = 15 m^2
我想到了这个解决方案:
class NamedValue {
public:
NamedValue(std::string n,std::string u) : name(n),units(u){}
const std::string name;
const std::string units;
void operator=(double v){this->value = v;}
void operator=(const NamedValue& v){this->value = v.value;}
operator double() const { return value; }
private:
double value;
};
std::ostream& operator<<(std::ostream& stream,const NamedValue& v) {
stream << v.name << " = " << (double)v << " " << v.units << std::endl;
return stream;
}
Unitl 现在运行良好,但我主要关心的是赋值运算符 void operator=(const NamedValue& v){this->value = v.value;}
不完全正确,人们通常对赋值运算符的期望是什么。
我会面临什么不好的后果吗?
我正在考虑将对象作为参数传递之类的事情。然而,像这样的功能
NamedValue test(NamedValue x){return x;}
工作没有问题,因为不涉及赋值(仅复制构造函数)。我错过了什么吗?还有什么我应该注意的吗?
ps:以防万一你想知道,目前我不关心在计算时检查单位。
最佳答案
赋值运算符完全没问题。唯一不寻常的是您没有返回对象,因此无法链接运算符调用。否则,它就是一个完全正常的运算符。
关于c++ - 赋值运算符 "screwing up"的后果是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31449493/
我想要具有名称和单位的 double 值,但我想像使用简单 double 值一样使用它们。例如我想像这样使用它们: int main(){ NamedValue a("a","m");
当我从一个位于浏览器顶部的普通导航栏开始时遇到问题,当你向下滚动到一个位置时消失:固定的导航栏即使你滚动也停留在浏览器的顶部。 这是代码笔:https://codepen.io/bleah1/pen/
我对 PIL 的裁剪功能可能有一个非常基本的问题:裁剪图像的颜色完全乱七八糟。这是代码: >>> from PIL import Image >>> img = Image.open('footbal
我正在编写一个应用程序,它有一个 Activity 和一堆 fragment ,其中一个 fragment 是全屏的。为了实现这一点,我正在尝试使用系统 UI 可见性标志。 对于全屏 fragment
我的应用程序随机崩溃,我无法生成与用户设备中发生的情况相同的情况,这里是崩溃报告的更多详细信息: 速成类: NSInternalInconsistencyException 功能: -[Calenda
我正在尝试在 this tutorial 之后实现翻转卡片效果.基本上,它将两个 Pane 放在一个容器中,并应用 transform: rotateY(180deg) 使其中一个页面朝后。翻转效果是
我的公司与其他几家公司合作来处理他们的 iPhone 开发需求,并且在许多情况下,其他公司已经在 App Store 上拥有一些现有的应用程序。 我们也为他们处理 App Store 提交,在他们已经
因此,在我的 Rails 模型中,我正在执行以下操作来生成“SEO 友好”的 slug: def to_param "#{id}-#{title.parameterize}" end 这样会生成如
网站.css: a:link, a:visited, a:hover, a:active { color: #0033CC; text-decoration: none; } 在页面中
好的,这是我发现的,当我为所有表单元素分配高度时,它们不会水平对齐,而它们实际上应该。Chrome 渲染正常,FF 将表单按钮推得太高。对此有优雅的解决方案吗? 0 1 最佳答案 确保按钮
我是一名优秀的程序员,十分优秀!