C++解答, is not a class or namespace name什么意思啊?

(1)定义一个基类animal,该类具有私有整型成员变量age,weight,构造派生类dog公有继承animal,dog类新增私有成员变量color,新增成员函数Set... (1)定义一个基类animal,该类具有私有整型成员变量age,weight,构造派生类dog公有继承animal,dog类新增私有成员变量color,新增成员函数SetAge(int n)中直接给age赋值,新增成员函数SetWeight(int m)中直接给weight赋值,查看编译结果,并分析结果。(2)将类animal中的age和weight为公有成员,重做第一步,并分析结果。(3)将类animal中的age和weight为保护成员,重做第一步,并分析结果。(4)将派生类dog的继承方式改为私有继承方式和保护继承方式重做以上各小题,并分析结果。
第一小题:#include<iostream>
using namespace std;
class Animal
{
private:
int age,weight;
};
class Dog::public Animal
{
public:
void setAge(int n){age=n;}
void setWeight(int m){weight=m;}
void display();
private:
char color;
};
void Dog::display()
{
cout<<"狗的相关数据为:"<<endl;
cout<<"年龄为:"<<age<<",重量为:"<<weight<<endl;
}
int main()
{
int n,m;
Dog c;
cout<<"请输入年龄,重量:"<<endl;
cin>>n>>m;
c.setAge(n);
c.setWeight(m);
c.display();
return 0;
}
出错:C:\Documents and Settings\admin\1.cpp(8) : error C2653: 'Dog' : is not a class or namespace name
C:\Documents and Settings\admin\1.cpp(8) : error C2589: 'public' : illegal token on right side of '::'
C:\Documents and Settings\admin\1.cpp(8) : error C2589: 'public' : illegal token on right side of '::'
C:\Documents and Settings\admin\1.cpp(8) : error C2589: 'public' : illegal token on right side of '::'
C:\Documents and Settings\admin\1.cpp(8) : error C2143: syntax error : missing ';' before '::'
C:\Documents and Settings\admin\1.cpp(8) : error C2143: syntax error : missing ';' before '::'
C:\Documents and Settings\admin\1.cpp(9) : error C2143: syntax error : missing ';' before '{'
C:\Documents and Settings\admin\1.cpp(9) : error C2447: missing function header (old-style formal list?)
C:\Documents and Settings\admin\1.cpp(17) : error C2027: use of undefined type 'Dog'
C:\Documents and Settings\admin\1.cpp(8) : see declaration of 'Dog'
C:\Documents and Settings\admin\1.cpp(20) : error C2065: 'age' : undeclared identifier
C:\Documents and Settings\admin\1.cpp(20) : error C2065: 'weight' : undeclared identifier
C:\Documents and Settings\admin\1.cpp(25) : error C2079: 'c' uses undefined class 'Dog'
C:\Documents and Settings\admin\1.cpp(28) : error C2228: left of '.setAge' must have class/struct/union type
C:\Documents and Settings\admin\1.cpp(29) : error C2228: left of '.setWeight' must have class/struct/union type
C:\Documents and Settings\admin\1.cpp(30) : error C2228: left of '.display' must have class/struct/union type
执行 cl.exe 时出错.
为什么啊?其他的怎么做啊?
这些都要怎么做啊?代码怎么写?可以的话帮我写一下,谢谢
展开
 我来答
旅游路上小知识
高粉答主

2020-04-25 · 我是旅行小达人,专注解决旅行中遇到的问题
旅游路上小知识
采纳数:2 获赞数:83103

向TA提问 私信TA
展开全部

出现is not a class or namespace name,就是没有正确包含声明了某个类的头文件。解决方法如下:

1、首先打开Visual C++ 6.0,文件-新建-文件选项卡-C/C++ Header File。

2、然后编写代码如下。

3、按Ctrl+S或者点击保存,然后可以看到目录下有一个H1.H,这就是头文件了,把它放到“Visual C++ 6.0安装目录\VC98\ATL\Include”文件夹下就可以使用了。

4、使用方法就像使用自带的头文件一样。

5、最后一个简单的头文件就完成了。

tattackor
推荐于2017-09-10 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:891万
展开全部
1、错误原因很多,根据经验,如果出现is not a class or namespace name,就是没有正确包含声明了某个类的头文件.
2、也许实际上包含。如果仍然出现这个提示,可能是从网页或者其他途径复制了代码,代码中包含有VC编译器不能识别的字符。解决方法:将所有复制过来的代码中的空格和回车分别选中并自己重新输入一遍。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
804014586
2010-11-30
知道答主
回答量:30
采纳率:0%
帮助的人:24.5万
展开全部
首先你的继承方法符号:public Animal被你写成了::、还有父类的私有成员是不能被直接访问的,最起码的是protected成员
public 继承后private 子类不能访问,protected 可在子类中访问,public 可在子类和外部访问。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cmnull
2010-11-30 · TA获得超过310个赞
知道小有建树答主
回答量:102
采纳率:0%
帮助的人:145万
展开全部
Dog 继承 Animal
后面不是用 :: 而是一个 :
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2018-04-23
展开全部
继承应该用单冒号吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式