标签:写入 参数 对象 多个 情况 默认 构造 cto 默认值
如果有多个默认构造函数,比如说:
class MyClass { public: MyClass() {}; MyClass(int a = 0, int b = 0,int c=0) { a_ = a; cout << "constructor 1 " << endl; } MyClass(int a, int b) { a_ = a; b_ = b; cout << "constructor 2 " << endl; } ~MyClass() {}; private: int a_; int b_; int c_; };
如果有无参数的构造函数:
MyClass(){}
那么在声明对象调用构造函数时不加参数,如:
MyClass class();
调用的是:
MyClass(){};
如果在声明对象时,写入三个参数,如:
MyClass class1(1,2,3);
那么调用的是:
MyClass(int a = 0, int b = 0,int c=0)
如果没有无参数的默认构造函数,那么在不加参数的情况下,调用的是:
MyClass(int a = 0, int b = 0,int c=0)
当三个参数都有默认值时,无论如何都不会调用(水平有限,还没有发现调用的情况):
MyClass(int a, int b)
来构造对象。
标签:写入 参数 对象 多个 情况 默认 构造 cto 默认值
原文地址:http://www.cnblogs.com/hblearning/p/6761033.html