C++ 访问本地对象(同一类类型)的私有成员

C++ 访问本地对象(同一类类型)的私有成员,c++,oop,private-members,local-variables,member-functions,C++,Oop,Private Members,Local Variables,Member Functions,我需要从成员函数访问本地对象的私有成员。我认为这个例子更好地解释了这一点。有没有一种方法可以在不公开*或不提供专门用于分配给*的功能的情况下实现这一点?此运算符+函数可能需要多次为本地对象分配和/或取消分配*a 这似乎表明这应该是可行的 //object.h 类对象{ char*a; ... } //object.cpp 对象对象::运算符+(对象常量和rhs)常量{ 整数金额=。。。 对象局部(); //这没关系 此->a=新字符[金额]; //这也可以 rhs.a=新字符[数量]; //这不

我需要从成员函数访问本地对象的私有成员。我认为这个例子更好地解释了这一点。有没有一种方法可以在不公开*或不提供专门用于分配给*的功能的情况下实现这一点?此运算符+函数可能需要多次为本地对象分配和/或取消分配*a

这似乎表明这应该是可行的

//object.h
类对象{
char*a;
...
}
//object.cpp
对象对象::运算符+(对象常量和rhs)常量{
整数金额=。。。
对象局部();
//这没关系
此->a=新字符[金额];
//这也可以
rhs.a=新字符[数量];
//这不是
local.a=新字符[金额];
....
}
我的编译错误(g++4.6.3)是:

实际上是一个函数声明,而不是对象定义。使用以下命令创建变量:

object local;
由于
operator+
是类成员,因此您有权访问
private
成员,因此问题是由于最令人烦恼的解析问题

实际上是一个函数声明,而不是对象定义。使用以下命令创建变量:

object local;

由于
operator+
是类成员,因此您有权访问
private
成员,因此问题是由于最麻烦的解析

看起来您正在尝试调用对象构造函数,对吗?调用默认构造函数时不需要“()”,只有在将参数传递给构造函数时才需要。看起来您正在尝试调用对象构造函数,对吗?调用默认构造函数时不需要“()”,只有在向构造函数传递参数时才需要。
object local;