我想在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;
};
提前声明一下
Triangular_iterator