默认构造函数 与 默认形参构造函数

  • 带默认形参的构造函数与无参数的默认构造函数等价
  • 在多个默认形参的构造函数中,第一个形式参数有默认值,编译器就认为是默认构造函数


#include <iostream>
using namespace std;
class A {
	public:
		A(){x=0;y=0;}
//如果最左边有默认形参,则认为构造函数是默认构造函数,比如:A(int a=0,int b) 或 A(int a=0,int b=0) ;
//反之不是默认构造函数,比如A(int a,int b=0) A(int a,int b=0, int c=0)
		A(int a,int b) {  //无默认形参值的构造函数
			x=a;
			y=b;
		}
		A (A& obj) {   //拷贝构造函数
			x=obj.x;
			y=obj.y;
			cout<<"copy_constructor called."<<endl;
		}

		int Getx() {
			return x;
		}
		int Gety() {
			return y;
		}
	private:
		int x,y;
};

void fun(A a) {
	cout<<a.Getx()<<","<<a.Gety()<<endl;
}
int main() {
	A a2;
	return 0;
}

猜你喜欢

转载自javaeye-hanlingbo.iteye.com/blog/2408101