读书人

error C2065: undeclared identifier

发布时间: 2012-08-27 21:21:56 作者: rapoo

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

读书人网 >C++

热点推荐