animal 类的C++实现问题,建立一个对象问题

来源:百度知道 编辑:UC知道 时间:2024/07/02 15:34:07
#include<iostream>
using namespace std;
class a
{
public:
int age;
};
class b:public a
{
private:
int z;
b(int x){a::age=x;z=a::age;cout<<z;}
public:
int p(){return (a::age);}
void g(){z=a::age;}
void p2(){cout<<z;}
};
main()
{
class b(6);
class b b1(5);
class b pp(4);
pp.p();
}
怎么class b(6),没有给它名字都能运行?
不是像class b b1(5);这样才能建立一个b类的对象吗?
怎么下面那个pp.p();不能运行???问题出在哪?

这个叫做构造函数.
观察b类,首先继承了a类,
然后你观察
b(int x)这个函数没有返回值对不对?

构造函数是指在类创建对象时,就会被执行的函数.
构造函数没有返回值.

你的b的构造函数设置成私有了..建立不了对象啊.

class b(6);
这个的意思是建立一个匿名对象吧.在需要一个b作为参数的函数里面你是可以这样子声明的..

至于pp.p() 我这里可以运行啊.

你程序问题实在太大了!!!!!!!!!!!!

#include<iostream>
using namespace std;
class a
{
public:
int age;

};
class b:public a
{
private:
int z;
//b(int x){a::age=x;z=a::age;cout<<z;}age可是实例成员变量,可不是类成员变量
//而其构造函数怎么能弄成私有的呢?即使弄成私有也要给外部一个获得对象的接口

public:
b(int x)
{
age = x;
z = x;
cout<<z<<endl;
}
int p(){
//return (a::age);age可是实例成员变量,可不是类成员变量
return age;
}
void g()
{
z=age;
}
void p2()
{
cout<<z<<endl;
}
};
void main()
{
b bb(6);
b b1(5);
b pp(4);
pp.p();
}

cla