error C2065: undeclared identifier
初学C++,麻烦各位大神帮帮忙,很简单的程序:
基类:
- C/C++ code
#ifndef BASE_H#define BASE_Hclass Base{public: size_t size() const { return n; } Base(size_t n1 = 0) : n(n1){}protected: size_t n;};#endif扩展类:#ifdef DERIVED_H#define DERIVED_H#include "Base.h"class Derived : private Base{public: using Base::size; Derived(size_t n1 = 0):Base(n1),n(n1){}protected: using Base::n;};#endif测试类:#include <iostream>#include "Derived.h"using namespace std;int main(){ int i = 3; Derived d(i); cout << d.size() << endl; return 0;}调试的时候出现如下错误:
--------------------Configuration: 7 - Win32 Debug--------------------
Compiling...
7.cpp
C:\Documents and Settings\user\桌面\C++\7.cpp(6) : error C2065: 'Derived' : undeclared identifier
C:\Documents and Settings\user\桌面\C++\7.cpp(6) : error C2146: syntax error : missing ';' before identifier 'd'
C:\Documents and Settings\user\桌面\C++\7.cpp(6) : error C2065: 'd' : undeclared identifier
C:\Documents and Settings\user\桌面\C++\7.cpp(7) : error C2228: left of '.size' must have class/struct/union type
执行 cl.exe 时出错.
7.obj - 1 error(s), 0 warning(s)
麻烦问一下错在哪,该怎么改呢,谢谢
[解决办法]
扩展类:
#ifdef DERIVED_H
#define DERIVED_H
这里要改成
#ifndef DERIVED_H
#define DERIVED_H