无参有参构造函数

无参构造函数
class Location_1
{
public:
	Location_1()
	{
		cout << "调用无参构造函数" << endl;
	}
	
private:
	int x;
	int y;

};

void main()
{
	// 调用的就是无参构造函数
	// 这个无参构造函数不写也是有默认的
	Location_1 l1;
	system("pause");
	return;
}
下面的这种无参函数的调用方式是错误的:
void main()
{
	Location_1 l1();    // 注意这个调用是错误的

	cout << "x : " << l1.getX() << ", y : " << l1.getY() << endl;   // 并且这段代码还是会报错的

	system("pause");
	return;
}

无参有参构造函数_第1张图片

或者你直接手动调用无参构造函数
Location_1 l1 = Location_1();

有参构造函数调用的三种方法

括号法 等号法 手动调用:

class Location_1
{
public:
	Location_1()
	{
		cout << "调用无参构造函数" << endl;
	}
	Location_1(int x)
	{
		this->x = x;
		this->y = 0;
	}
	Location_1(int x, int y)
	{
		this->x = x;
		this->y = y;
	}

public:
	void setX(int x)
	{
		this->x = x;
	}
	int getX()
	{
		return this->x;
	}
	void setY(int y)
	{
		this->y = y;
	}
	int getY()
	{
		return this->y;
	}


private:
	int x;
	int y;

};



void main()
{
	// Location_1 l1(1);  // 调用一个参数的构造函数   (括号法)
	// Location_1 l1 = (1);  // C++调用有参构造函数     (等号法)
	// Location_1 l1(1, 2);  // 调用两个参数的构造函数  (括号法)
	// Location_1 l1 = (1, 2);  // (等号法)
	Location_1 l1 = Location_1(1, 2);  // 手动调用构造函数的方法
	

	cout << "x : " << l1.getX() << ", y : " << l1.getY() << endl;

	system("pause");
	return;

}

你可能感兴趣的:(C++)