以另一个类中的成员函数作为友元函数

    科技2025-06-19  14

    一个成员函数为另一个类友元函数

    注意点:必须先声明类B,再定义类A;若调换顺序会发生语法错误

    //先声明类B //原因就是类A中的形参需要用到B中的对象 class B; //再定义类A class A { public: void know(B mm); protected: }; class B { public: MM(string name, int age) :name(name), age(age){} friend void boy::know(B mm); protected: string name; int age; };

    以下代码可能出现的问题: IntelliSense:智能检测 : 也就是说编译器根据语法结构检测出代码有问题,实质上是没问题的。

    void boy::know(B mm) { cout << mm.name << "\t" <<mm.age<< endl; //warning:IntelliSense:智能检测 } int main() { B mm("小美", 19); boy *p = new boy; p->know(mm); delete p; system("pause"); return 0; }

    总结:

    注意类的定义顺序只要符合语法规则,可以忽略编译器的智能检测。
    Processed: 0.013, SQL: 8