为什么这个有效?
无论这是否是一个好主意,它为什么能够工作呢?公共函数
谢谢
#include <stdio.h>
class ClassA
{
public:
ClassA(int id) : my_id(id) { };
ClassA * makeNewA(int id)
{
ClassA *a = new ClassA(id);
printf("ClassA made with id %d\n", a->getId());
return a;
};
private:
int getId() {
return my_id;
};
private:
int my_id;
};
int main()
{
ClassA a(1);
ClassA *b = a.makeNewA(2);
return 0;
}
无论这是否是一个好主意,它为什么能够工作呢?公共函数
ClassA::makeNewA(int)
实例化一个新的ClassA对象,然后使用这个新对象调用一个私有函数getId()
。类自动成为自己的友元吗?谢谢