请教一个c++ friend的问题

我想在Triangular_friend中定义函数让它成为Triangular_iterator类的friend, 用以访问Triangular_iterator的私有变量, 所以我的参数是const Triangular_iterator &ti, 但是为了在声明friend函数的时候让Triangular_iterator类知道Triangular_friend这个类的定义, 我只能把friend类放到前面, 这样我就遇到了一个互相矛盾的问题....就是两个class互相需要对方先定义, 请问如何解?

#pragma once


class Triangular_friend {

public:

void print_friend_index(const Triangular_iterator &ti);

void print_index(const Triangular_iterator &ti);

};


class Triangular_iterator {

public:

Triangular_iterator(int index): _index(index - 1) {};

bool operator==(const Triangular_iterator &) const;

bool operator!=(const Triangular_iterator &) const;

int operator*() const; 

Triangular_iterator & operator++();

Triangular_iterator operator++(int);

friend void Triangular_friend::print_friend_index(const Triangular_iterator &ti);

private:

void check_intergrity() const; 

int _index;

};
阅读 1.3k
1 个回答

提前声明一下Triangular_iterator

class Triangular_iterator;

class Triangular_friend {
//.........
};

class Triangular_iterator {
//........
};
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题