gpt4 book ai didi

c++ - 向类的构造函数添加虚拟参数以解决调用歧义是否违反任何规则?

转载 作者:太空狗 更新时间:2023-10-29 19:39:57 24 4
gpt4 key购买 nike

采用以下类和两个对象定义:

class Rect{
public:
enum centimeter;
enum meter;
Rect(double len,double wid,enum centimeter){
length=(len/100);
width=(wid/100);
}
Rect(int len,int wid,enum meter){
length=len;
width=wid;
}
//rest of implementation
private:
double length;//in meters
double width;//in meters
};
Rect obj1(10,5,Rect::centimeter());
Rect obj2(10,5,Rect::meter());

两个先前的构造函数具有虚拟枚举参数,以解决在这些虚拟参数不存在的情况下导致的调用歧义。现在尽管可以在这里使用命名构造函数,但如果我坚持使用这些虚拟参数,这是否违反了我应该注意的任何编码规则?

最佳答案

我觉得这违背了我的品味。我会这样编码:

enum Unit {
Centimeter = 100,
Meter = 1
};

Rect(int len, int wid, Unit unit) {
length = len / (int) unit;
width = wid / (int) unit;
}

Rect obj1(10, 5, Rect::Centimeter);
Rect obj2(10, 5, Rect::Meter);

关于c++ - 向类的构造函数添加虚拟参数以解决调用歧义是否违反任何规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3272822/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com