Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2108481
  • 博文数量: 413
  • 博客积分: 10926
  • 博客等级: 上将
  • 技术积分: 3862
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-09 18:14
文章分类

全部博文(413)

文章存档

2015年(5)

2014年(1)

2013年(5)

2012年(6)

2011年(138)

2010年(85)

2009年(42)

2008年(46)

2007年(26)

2006年(59)

分类: C/C++

2011-04-28 15:23:02

  1. 构造函数
    1. 申明、定义
      struct TestX
      {
          TestX(int) {}
          TestX() {}
          fun(int) {}
      };

      class TestY
      {
      public:
          TestY(int) {}
          TestY() {}
          fun(int) {}
      };

      void main()
      {
          TestX A(1); //ok
          A.fun();

          TestX B(); //error, must be "TestX B;"
          B.fun();


          TestY C(1); //ok
          C.fun();

          TestY D(); //error, must be "TestY D;"
          D.fun();
      }
    2. 初始化
      //Error: 在构造函数中调用重载构造函数,实际上是创建一个临时对象。
      struct TestX
      {
          int m_data;
          TestX(int data):m_data(data) {}
          TestX() {TestX(0);}
      };

      class TestY
      {
      public:
          int m_data;
          TestY(int data):m_data(data) {}
          TestY() {TestX(0);}
      };


      //OK
      struct TestX
      {
          int m_data;
          TestX(int data) {Init(data);}
          TestX() {Init(0);}
          void Init(int data) {m_data = data;}
      };

      class TestY
      {
      public:
          int m_data;
          TestX(int data) {Init(data);}
          TestX() {Init(0);}
          void Init(int data) {m_data = data;}
      };


    3. xxxxxx
  2. 条件操作符(?:)
    冒号两边的数据类型必须一致,如:
    cout << (true?1:2) << endl;  //ok
    cout << (true?"1":"2") << endl;  //ok
    cout << (true?1:"2") << endl;  //error
    cout << (true?"1":2) << endl;  //error
  3. xxx
阅读(803) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~