c++ 类的两个不同实例如何相互访问对方的成员变量
比如一个有私有成员itsAge的cCat类,实例了两个对象firsky和boots,那么boots如何访问firsky中的itsAge书上说这是可以的...
比如 一个有私有成员itsAge的cCat类,实例了两个对象firsky和boots,那么boots如何访问firsky中的itsAge
书上说这是可以的 展开
书上说这是可以的 展开
4个回答
展开全部
属于同一个类的两个对象是产生出来的类的两个不同的实例,显然不能互相访问私有成员变量
有相同的属性和方法是不错,不过它只能访问自己的成员变量,不能访问其他实例的成员变量
一个类的私有成员连它派生出来的子类都无法访问,其他类更不能访问,你可以定义另一个类B,然后把B声明为作为cCat的friend,那么b的对象就可以访问cCat的函数,但是不能访问cCat对象的东西。这个问题这么理解,就像是家庭是一个类,假设A,B都是家庭的实例,A家庭可以访问B家庭的老婆吗?
有相同的属性和方法是不错,不过它只能访问自己的成员变量,不能访问其他实例的成员变量
一个类的私有成员连它派生出来的子类都无法访问,其他类更不能访问,你可以定义另一个类B,然后把B声明为作为cCat的friend,那么b的对象就可以访问cCat的函数,但是不能访问cCat对象的东西。这个问题这么理解,就像是家庭是一个类,假设A,B都是家庭的实例,A家庭可以访问B家庭的老婆吗?
追问
书上说是可以的 我也不清楚
展开全部
书上说的是这个意思
#include <iostream>
#include <cstdio>
#include <cstdarg>
using namespace std;
class Cat
{
private:
int itsAge;
public:
void setAge(int a){itsAge=a;}
void setAge(Cat another){itsAge = another.itsAge;};
int getAge(){return itsAge;};
};
int main()
{
Cat cata, catb;
cata.setAge(10);
catb.setAge(cata);
cout<<catb.getAge()<<endl;
system("pause");
return 0;
}
#include <iostream>
#include <cstdio>
#include <cstdarg>
using namespace std;
class Cat
{
private:
int itsAge;
public:
void setAge(int a){itsAge=a;}
void setAge(Cat another){itsAge = another.itsAge;};
int getAge(){return itsAge;};
};
int main()
{
Cat cata, catb;
cata.setAge(10);
catb.setAge(cata);
cout<<catb.getAge()<<endl;
system("pause");
return 0;
}
更多追问追答
追问
是这样的么 感觉不太可能 这让我感觉书上说的那是废话
追答
?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在类中可以定义一个访问成员变量的函数,参数的类型可以使累的引用类型或者是类的指针类型,这两种应该都是可以的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询