我想写一个类,构造函数能够传递某一类型(此实例中为int)的值和引用来初始化成员变量。如下:
class a
{
public:
int number;
a() {};
** a(int& set_bumber) :number(set_bumber) {};
a(int set_bumber) :number(set_bumber) {};**
a(a& some_a)
{
cout << "copy_fun run!" << endl;
number = some_a.number;
};
~a() {};
void set_number(int somenumber)
{
this->number = somenumber;
}
void pr()
{
cout << this->number << endl;
}
private:
};
其中a(int& set_bumber) :number(set_bumber) {};我想用来按引用传入,但是我也想直接传入值构造类。因此又写了a(int set_bumber) :number(set_bumber) {};构造函数。
此时,传入值时,通过编译,但传入变量时,标红,提示:有多个构造函数的实例与参数列表匹配
请问怎么才能够创建一个类,既能够按引用传递初始化成员,也能够按值传递初始化成员?