沒能進入總而言之:派生類成員函數在C++
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」)「謊言
任何人給我一些提示?
整體規劃設計爲洛基建議:
#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;
}
試試'new B()'。在'B'中你也拼寫'protected'。 – chris
@chris:由於'B'具有用戶聲明的默認構造函數'new B'和'new B()'完全一樣。 –
你試過了:void SetID(** const ** char * ID)? – akhisp