c++改错题,谢谢大佬
#include <iostream>// 预处理命令
using namespace std;// 使用标准命名空间std
// 整型类
class Integer
{
private:
int val;// 整数值
public:
Integer(){ val = 0; }// 无参数的构造函数
Integer(int v = 0){ val = v; }// 带参数的构造函数
void Show(){ cout << val << endl; }// 显示整数值
};
int main()
{
Integer a(2),b;// 定义整型对象
a.Show();// 显示a
b::Show();// 显示b
return 0; // 返回值0, 返回操作系统
}
程序语法上有两个问题
1。
Integer(int v = 0){ val = v; }// 带参数的构造函数
你已有缺省的构造了,若你再有缺省参数,就存在二义性了
你的 Integer b;定义到底是调用哪一个?
所以,要么删除缺省构造,要么删除缺省参数,也就是
Integer(int v ){ val = v; }// 带参数的构造函数
2。 b::Show();// 显示b
b只是个类的变量,不是类或命名空间,它的成员不能用::调用的,只能改
b.Show();// 显示b
至于逻辑上,就要看你具体的需求了
热门标签: