#include <iostream>
using namespace std;
class CExample
{
public:
CExample(int b, int c = 0):m_a(1) //带默认参数的,必须放在尾巴上,否则编译失败,如(int c = 0, int b)编译报错
{
m_b = b;
m_c = c;
}
CExample(const CExample&c):m_a(1){/*m_a = 1; compile error*/}
~CExample(){}
private:
CExample():m_a(1){}
const int m_a;
int m_b, m_c;
};
int main( int argc, char * argv[] )
{
CExample a; //compile error.
CExample b(1, 1);//ok
return 0;
}
答案是可以,不过要在构造函数重载的情况下, 否则,该类是无法创建对象的。