首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于类的组合的有关问题

2012-04-12 
关于类的组合的问题#include iostreamusingnamespacestdclassclass1{public:class1(void){a10}protec

关于类的组合的问题
#include <iostream>
using   namespace   std;

class   class1
{
public:
class1(void)
{
a=10;
}
protected:
int   a;
};

class   class2
{
private:
class1   b;
public:
class2(void)
{
}
void   call(void);
};

void   class2::call(void)
{
b.a=12;
}

void   main()
{
class2   elem;
elem.call();
}

我想知道为什么class2中不能直接访问class1中成员。
如果要实现这种功能,应该怎么改最简单。谢谢!!!!!!!!!

[解决办法]
兄弟,procected的含义没记牢吧。
改成public即可。
[解决办法]
对啊,protected类型的成员只能被所属类的成员函数和派生类的成员函数访问,不能被外部类访问。将private int a改为public int a最简单
[解决办法]
在class1中,把class2 声明为class1的友元类。
friend class class2;

热点排行