none
一个关于V C++中类实例化的问题 RRS feed

  • 问题

  • 小弟 最近刚接触 Visual C++

    看到一本 vc++ 6.0的教程上 在 声明了 一个类的对象后 没有用类似于 C# 或 Java中的new 来实例化

    而直接调用其公开成员,请问 vc++ 是不是可以这样调用对象,还是书中有错误??

    2011年2月7日 14:13

答案

  • 静态公开成员可以直接调用,动态的不行,C#和java也是这样

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
    Visual C++ MVP
    • 已标记为答案 杨汉亮 2011年2月10日 8:34
    2011年2月8日 5:17
    版主
  • 只是形式不一样

    例如

    class A

    {

    public:

    int m_i;

    };

    在C++中

    A a;是分配在栈上。也可以A* pa = new A;分配在堆上。

    而在JAVA 或C#中

    通过

    A a = new A();

    分配在托管堆上。

    不论是用哪种方式,只要变量是public的都可以直接访问。


    麻烦把正确答案设为解答。
    • 已标记为答案 杨汉亮 2011年2月10日 8:34
    2011年2月9日 3:03
    版主

全部回复

  • 静态公开成员可以直接调用,动态的不行,C#和java也是这样

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
    Visual C++ MVP
    • 已标记为答案 杨汉亮 2011年2月10日 8:34
    2011年2月8日 5:17
    版主
  • 只是形式不一样

    例如

    class A

    {

    public:

    int m_i;

    };

    在C++中

    A a;是分配在栈上。也可以A* pa = new A;分配在堆上。

    而在JAVA 或C#中

    通过

    A a = new A();

    分配在托管堆上。

    不论是用哪种方式,只要变量是public的都可以直接访问。


    麻烦把正确答案设为解答。
    • 已标记为答案 杨汉亮 2011年2月10日 8:34
    2011年2月9日 3:03
    版主