第1关:为类提供默认构造函数
本关有一个未完成的类 Int
,该类含有一个成员变量,请为该类提供一个默认构造函数。默认构造函数的功能是将该成员变量初始化为 0。
/**
* 这是一个包装类(wrapper class),包装类在C++中有点小小的用处(基本上没用),在Java中的用处更大一些。
*/
#ifndef _INT_H_ //这是define guard
#define _INT_H_ //在C和C++中,头文件都应该有这玩意
class Int{
private://这是访问控制——私有的
int value; //这是数据成员,我们称Int是基本类型int的包装类,就是因为Int里面只有一个int类型的数据成员
public: //这是公有的
//请在以下空白书写默认构造函数,即不带参数的构造函数
/********** Begin **********/
Int(){value=0;};
/********** End **********/
//请不要改动以下成员函数
int getValue()const{return value;}
};//记住这里有一个分号
#endif
第2关:为类提供拷贝构造函数
本关有一个未完成的类 Int
,该类含有一个成员变量,请为该类提供一个拷贝构造函数。拷贝构造函数必须是以本类型的常引用作为参数,其功能是构造出一个与参数内容一模一样的对象。
/**
* 这是一个包装类(wrapper class),包装类在C++中有点小小的用处(基本上没用),在Java中的用处更大一些。
*/
#ifndef _INT_H_ //这是define guard
#define _INT_H_ //在C和C++中,头文件都应该有这玩意
class Int{
private://这是访问控制——私有的
int value; //这是数据成员,我们称Int是基本类型int的包装类,就是因为Int里面只有一个int类型的数据成员
public: //这是公有的
//请在以下空白书写拷贝构造函数,即以本类的常引用为参数的构造函数
/********** Begin **********/
Int(int v){value=v;};
Int(){value=0;};
/********** End **********/
//请不要改动以下成员函数
int getValue()const{return value;}
void setValue(int v){value=v;}
};//记住这里有一个分号
#endif
第3关:为类提供功能构造函数
本关有一个未完成的类 Int
,该类含有一个成员变量,请为该类提供一个指定功能的构造函数。该构造函数拥有一个 int
类型的参数,其功能是构造一个 Int
对象,其成员与参数值相等。
/**
* 这是一个包装类(wrapper class),包装类在C++中有点小小的用处(基本上没用),在Java中的用处更大一些。
*/
#ifndef _INT_H_ //这是define guard
#define _INT_H_ //在C和C++中,头文件都应该有这玩意
class Int{
private://这是访问控制——私有的
int value; //这是数据成员,我们称Int是基本类型int的包装类,就是因为Int里面只有一个int类型的数据成员
public: //这是公有的
//请在以下空白书写功能构造函数,此处要求以一个整型作为参数
/********** Begin **********/
Int(int v){value=v;};
/********** End **********/
//请不要改动以下成员函数
int getValue()const{return value;}
};//记住这里有一个分号
#endif
为 Int
类提供 3 个构造函数,分别是默认构造函数、拷贝构造函数和指定功能的构造函数。
这个例子说明,构造函数是可以重载的。其重载规则与普通函数并无不同
/**
* 这是一个包装类(wrapper class),包装类在C++中有点小小的用处(基本上没用),在Java中的用处更大一些。
*/
#ifndef _INT_H_ //这是define guard
#define _INT_H_ //在C和C++中,头文件都应该有这玩意
class Int{
private://这是访问控制——私有的
int value; //这是数据成员,我们称Int是基本类型int的包装类,就是因为Int里面只有一个int类型的数据成员
public: //这是公有的
//请在以下空白书写构造函数重载,须提供3个构造函数
/********** Begin **********/
Int(){value=0;};
Int(int v){value=v;};
Int(const Int &lhs){value=lhs.getValue();};
/********** End **********/
//请不要改动以下成员函数
int getValue()const{return value;}
};//记住这里有一个分号
#endif
。