C++ 重新定义运算符+;(c+;+;) 类社区 { 私人: 字符*名称; char foundationDate[11]; 个人创办人; int-maxmemberscont; 国际会员; 个人*成员; 静态int社区计数; 公众: . . . Person*operator+(Community&);//operator+prototype(必须返回成员数组) }; 人员*社区::操作员+(社区和其他) { 社区临时工(“临时工”,“12.11.1993”,other.getFounder()); 个人*ptr; 对于(int i=0;igetMembersCount();i++) { 对于(int j=0;jmembers[i].getEGN(),other.members[j].getEGN())==0) { 临时成员(其他成员[j]); } } } ptr=temp.getMembers(); 返回ptr; }

C++ 重新定义运算符+;(c+;+;) 类社区 { 私人: 字符*名称; char foundationDate[11]; 个人创办人; int-maxmemberscont; 国际会员; 个人*成员; 静态int社区计数; 公众: . . . Person*operator+(Community&);//operator+prototype(必须返回成员数组) }; 人员*社区::操作员+(社区和其他) { 社区临时工(“临时工”,“12.11.1993”,other.getFounder()); 个人*ptr; 对于(int i=0;igetMembersCount();i++) { 对于(int j=0;jmembers[i].getEGN(),other.members[j].getEGN())==0) { 临时成员(其他成员[j]); } } } ptr=temp.getMembers(); 返回ptr; },c++,arrays,class,object,redefine,C++,Arrays,Class,Object,Redefine,如果我看不到你剩下的源代码,我就不能肯定了,但是我猜你的+操作符返回的是一个指向已经释放的内存的指针。这整件事毫无意义。请显示一些代码,其中所需的op+将用于一些好的用途。看起来您正在计算常见成员列表。顺便说一句,您可以返回temp.getMembers(),无需使用令人困惑的变量ptr。您会同意您的帖子令人困惑。然而,我认为您正在挣扎,部分原因是您正在避免使用标准数据结构。尝试使用std::vector或QList或类似的工具来保存成员列表。 class Community { private

如果我看不到你剩下的源代码,我就不能肯定了,但是我猜你的+操作符返回的是一个指向已经释放的内存的指针。

这整件事毫无意义。请显示一些代码,其中所需的op+将用于一些好的用途。看起来您正在计算常见成员列表。顺便说一句,您可以
返回temp.getMembers()
,无需使用令人困惑的变量
ptr
。您会同意您的帖子令人困惑。然而,我认为您正在挣扎,部分原因是您正在避免使用标准数据结构。尝试使用std::vector或QList或类似的工具来保存成员列表。
class Community
{
private:
    char* Name;
    char foundationDate[11];
    Person founderPtr;
    int maxMembersCount;
    int membersCount;
    Person* members;
    static int communitiesCount;
public:

.
.
.
Person* operator+(Community&); // operator + prototype (must return array of members)
};

Person* Community::operator+(Community& other)
{
Community temp("temp","12.11.1993",other.getFounder());
Person* ptr;
    for(int i = 0 ; i < this->getMembersCount() ; i++)
{
        for(int j = 0 ; j < other.getMembersCount() ; j++)
    {

        if(strcmp(this->members[i].getEGN(),other.members[j].getEGN()) == 0)
        {
            temp.addMember(other.members[j]);
        }
    }
}
ptr = temp.getMembers();
return ptr;
}
 Community S("obshnost","12.11.2010",A);
Community R("community","11.10.2011",B);
S.addMember(C);
S.addMember(Z);
R.addMember(C);


Person* ptr = S+R;
 for(int i = 0 ; i<2 ; i ++)
{
cout<<ptr[i];
 }