CButton *btn=new CButton();
btn->Create("button",BS_DEFPUSHBUTTON | WS_VISIBLE ,CRect(0,0,100,100),this,123);为什么用 CRect(0,0,100,100) 而不能用 Rect(0,0,100,100) ?,还有 CRect 是个类,为什么不是 new CRect(0,0,100,100) 这么使用?

解决方案 »

  1.   

    RECT是个结构体(当然在C++里面也是类,但它没有定义RECT(0,0,100,100)形式的构造函数,所以不行)
    参数里面用new CRect(0,0,100,100)貌似C#里面比较常用,C++不支持你那种用法
      

  2.   

    RECT是个结构体(当然在C++里面也是类,但它没有定义RECT(0,0,100,100)形式的构造函数,所以不行)
    参数里面用new CRect(0,0,100,100)貌似C#里面比较常用,C++不支持你那种用法
      

  3.   

    CRect 是个类,为什么不是 new CRect(0,0,100,100) ?类不是都要 new 一下吗?
      

  4.   

    new 一个类的对象可以...
    new 个类不行
    因为类本身不占内存的..
      

  5.   

    CButton *btn=new CButton();
    CRect *r = new CRect(0,0,100,100);
    btn->Create("button",BS_DEFPUSHBUTTON | WS_VISIBLE ,*r,this,123);
    非要用new 就这样
      

  6.   

    类不是都要 new 一下吗? C++里不是这样的,可以直接定义,C#才是要new
      

  7.   

    那能不能举个不用 new 就可以使用类的 C++ 例子(静态类除外,因为 CRect 不是静态的 )
      

  8.   

    我想要个C++ 的例子,没有new 然后又可以使用
      

  9.   

    .....
    CRect rect;
    rect.right = ...;
    rect.left = ...;
    .....
    //----------------
    GetClientRect( &rect );多的不能再多了..
      

  10.   

    还有你用 new 是获得内存的...
    你new 了后要把地址赋给个指针变量
    因为用完必须要delete这个地址...
    CRect* ptr = new CRect( 0,0,100,100 );
    if( ptr )
    {
    delete ptr;
    ptr == NULL;
    }
      

  11.   

    换个类呢。大家好象没理解我的意思class A
    {
    public:
    int num;
    };就上面的类,不 new 一下能用吗?
      

  12.   

    new 一个类的对象可以...
    new 个类不行
    因为类本身不占内存的..//----------------------------
    就不能new ...
     
    ok ..?
      

  13.   

    CRect rect;
    rect.right = ...;
    rect.left = ...;既然上面可以这么用,那下面应该也可以……class A
    {
    public:
    int num;
    };A.num=……;    //能这样吗?所以我想知道这两个类(CRect 类 和 我定义的 A 类)的区别
      

  14.   

    ....
    你把俺征服了..
    对象呢...?
    //------------------
    A Object;
    Object.num = ...;
      

  15.   

    哪个兄台能告诉我,CSDN中在哪里可以发贴呀,我怎么找不到呀??小弟在这里先谢谢了~~~~~