0

长话短说:

class A {
        public:
              A();
              ~A();
              void SetID(char* ID);
              char* GetID();
        protected:
              char ID[10];
};

class B: public A {
        public:
              B();
              ~B();
        protected:
              ...
        private:
              ...
};

然后主要:

 ...
 B *temp = new B;
 temp->SetID("0x12345678");
 ...

然后编译器说“预期的构造函数,析构函数或类型转换之前->令牌”其中“temp->SetID(“0x12345678”)”位于

有人给点提示吗??

Loki 建议的整个程序:

  #include <iostream>

  using namespace std;

  class A {
      public:
         A();
         ~A();
         void SetID(char* id);
         char* GetID();
       protected:
            char ID[10];
   };

   void A::SetID(char* id){
         strcpy(ID,id);          
    }
    char* A::GetID(){
         return ID;
    }
    class B: public A {
             public:
                 B();
                ~B();
             protected:
                int num;
     };


    int main(){
    B *temp = new B;
    B->SetID("0x12345678");
    cout<<B->GetID()<<endl;

    return 0;
    }
4

2 回答 2

1

您正在使用B, 这是一种类型,您可能打算在其中使用tempwhich 是变量的名称。

代替:

int main(){
B *temp = new B;
B->SetID("0x12345678");
cout<<B->GetID()<<endl;

return 0;
}

你可能的意思是:

int main(){
B *temp = new B;
temp->SetID("0x12345678");
cout<<temp->GetID()<<endl;

return 0;
}

这更像是您发布的“摘录”。

于 2012-06-02T21:32:07.407 回答
0

让我猜猜。

在得到您main认为位于main. 所以它在任何函数之外,除了初始化器之外,没有其他表达式的地方。

于 2012-06-02T20:44:51.993 回答