2017-02-14 87 views
0

有人可以解释我什么我做错了吗?对象创建2010 C++

我有两个班,我不得不进入A级变量的值到B类,然后对它们进行比较,这是我在做什么,我无法访问变量

public ref class A : public System::Windows::Forms::Form 
{ 

    public: 
    String^ name; 
    String^ address; 

    private: System:: void foo() 
    { 
     name=textBox1->Text; 
     address=textBox2->Text; 
    } 
}` 

public ref class B : public System::Windows::Forms::Form 
{ 

    public: 
    String^ name1; 
    String^ address1; 
    A^ obj; 

    private: void foo() 
    { 
    MessageBox::show(obj->name); 
    MessageBox::show(obj->address); 
    } 
}` 

这使我有一个错误,说在线A^ obj;语法错误,当我有一个说缺少类型说明符这两个类都在不同的头文件

+1

这不是C++,看起来可能是C#进行独立的讨论。 C++语言没有语法:'public ref class'。另外,方法前面的'public'应该有一个冒号':',在它之后。 String之后的'^'表示您正在使用CLI。我建议更改语言标记。 –

+0

这绝对不是C#,或至少没有任何形式的C#我见过..... – Tim

回答

0

为了帮助,我可能会得到一些倒票...仇恨对人好点。

这是C++/CLI,所以询问只是C++将让你没有帮助,因为这是一个非常特殊类型的C++,我不会试图解释。 Gordon Hogenson写了一本关于这个主题的优秀书。

A类具有B类 但是,你什么都不显示,将设置名称和地址为Foo()的一部分被执行

如果你的建议,这是一个编译错误,这编译为我

 public ref class A : public System::Windows::Forms::Form 
     { 

      public: 
       String^ name; 
       String^ address; 

      private: void foo() 
      { 
       name = "Test this"; 
       address ="Test 2"; 
      } 
     }; 

     public ref class B : public System::Windows::Forms::Form 
     { 

       public: 
        String^ name1; 
        String^ address1; 
        A^ obj; 

        private: void foo() 
        { 
         MessageBox::Show(obj->name); 
         MessageBox::Show(obj->address); 
        } 
      }; 

我不认为它会做你所期望的,但是这是一个不同的问题,如果你是一个作战编译时错误。为了解决编译时问题,提供真正的.h和.cpp,而不是你认为是问题的混合。

关于A和B中的设定,这是OO的变量范围的问题,是的编译时间

+0

欣赏它。我一直在收到一些降价,他们甚至不会解释他们为什么这样做。我刚刚开始研究视觉工作室,所以这对我来说很新鲜。我想我可以在这里提问,并从别人的经验中学习,但我想那不是这种情况..我会尽快更新我的问题。 –