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 时出错.
为什么啊?其他的怎么做啊?
这些都要怎么做啊?代码怎么写?可以的话帮我写一下,谢谢 展开
第一小题:#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 时出错.
为什么啊?其他的怎么做啊?
这些都要怎么做啊?代码怎么写?可以的话帮我写一下,谢谢 展开
展开全部
1、错误原因很多,根据经验,如果出现is not a class or namespace name,就是没有正确包含声明了某个类的头文件.
2、也许实际上包含。如果仍然出现这个提示,可能是从网页或者其他途径复制了代码,代码中包含有VC编译器不能识别的字符。解决方法:将所有复制过来的代码中的空格和回车分别选中并自己重新输入一遍。
2、也许实际上包含。如果仍然出现这个提示,可能是从网页或者其他途径复制了代码,代码中包含有VC编译器不能识别的字符。解决方法:将所有复制过来的代码中的空格和回车分别选中并自己重新输入一遍。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先你的继承方法符号:public Animal被你写成了::、还有父类的私有成员是不能被直接访问的,最起码的是protected成员
public 继承后private 子类不能访问,protected 可在子类中访问,public 可在子类和外部访问。
public 继承后private 子类不能访问,protected 可在子类中访问,public 可在子类和外部访问。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Dog 继承 Animal
后面不是用 :: 而是一个 :
后面不是用 :: 而是一个 :
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-04-23
展开全部
继承应该用单冒号吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询