- 带默认形参的构造函数与无参数的默认构造函数等价
- 在多个默认形参的构造函数中,第一个形式参数有默认值,编译器就认为是默认构造函数
#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; }