以前我們說重定義通常是函數或者變量的重定義,今天遇到了一個新類型的重定義errorC2365
#includeusing namespace std; class Base { public: Base(void); ~Base(void); size_t size()const{return n;} protected: //private: size_t n; //int n(int x){return x;}; int n(char x){return 11;} };
\deriveexclude\deriveexclude\base.h(14): error C2365: “Base::n”: 重定義;以前的定義是“數據成員”
這個錯誤的原因是在C++類中,類的數據成員不能和函數成員重名,否則就會引起錯誤。
再如下面的例子:
// C2365.cpp // compile with: /c class C1 { int CFunc(); char *CFunc; // C2365, already exists as a member function int CMem; char *CMem(); // C2365, already exists as a data member };