1. 程式人生 > >【C++】error C2512: 'Adder' : no appropriate default constructor available

【C++】error C2512: 'Adder' : no appropriate default constructor available

1、出現錯誤的程式碼

#include <iostream>
using namespace std;

class Adder{
public:
	// 建構函式
	Adder(int i)
	{
		total = i;
	}
	// 對外的介面
	void addNum(int number)
	{
		total += number;
	}
	// 對外的介面
	int getTotal()
	{
		return total;
	};
private:
	// 對外隱藏的資料
	int total;
};
int main( )
{
	Adder a;

	a.addNum(10);
	a.addNum(20);
	a.addNum(30);

	cout << "Total " << a.getTotal() <<endl;
	return 0;
}

2、兩種修改方法

#include <iostream>
using namespace std;

class Adder{
public:
	// 建構函式
	Adder(int i = 0)
	{
		total = i;
	}
	// 對外的介面
	void addNum(int number)
	{
		total += number;
	}
	// 對外的介面
	int getTotal()
	{
		return total;
	};
private:
	// 對外隱藏的資料
	int total;
};
int main( )
{
	Adder a;

	a.addNum(10);
	a.addNum(20);
	a.addNum(30);

	cout << "Total " << a.getTotal() <<endl;
	return 0;
}
#include <iostream>
using namespace std;

class Adder{
public:
	// 建構函式
	Adder(int i)
	{
		total = i;
	}
	// 對外的介面
	void addNum(int number)
	{
		total += number;
	}
	// 對外的介面
	int getTotal()
	{
		return total;
	};
private:
	// 對外隱藏的資料
	int total;
};
int main( )
{
	Adder a(0);

	a.addNum(10);
	a.addNum(20);
	a.addNum(30);

	cout << "Total " << a.getTotal() <<endl;
	return 0;
}

正確結果: