通过作为另一个类的成员函数的友元函数设置值

红隼

setwidth()是类的成员函数,也是类Box的友元函数,Sbox用于设置width两个类的成员的值

width类的Sbox不设定/出山正常。

#include<iostream>

using namespace std;

class Sbox;

class Box{
    private:
        double width;
    public:
        friend void printwidth(Box box);
        void setwidth(Sbox sbox, double wid);
};

class Sbox {
    private:
        double width;
    public:
        friend void Box::setwidth(Sbox sbox, double wid);
        void printwidth() {
            cout << "the width of small box: " << width; //this value is coming wrong
        }
};

void Box::setwidth(Sbox sbox, double wid) {
    width = wid;
    sbox.width = wid;
}

void printwidth(Box box) {
    cout << "width of the box: " << box.width << endl;
}

int main() {
    Box box;
    Sbox sbox;
    box.setwidth(sbox, 10.77);
    printwidth(box);
    sbox.printwidth();
    return 0;
}
卡特斯

您需要通过引用传递 Sbox。将与号添加到这三行。

void setwidth(Sbox& sbox,double wid);

friend void Box::setwidth(Sbox& sbox,double wid);

void Box::setwidth(Sbox& sbox,double wid)

您是sbox按值传入的,这意味着制作了一个副本以供在setwidth. 然后,您的代码更改了 的副本的宽度sbox,但该副本随后在 结束时被销毁setwidth,而sbox函数外的原始内容保持不变。

添加&意味着Sbox参数通过引用传递,这意味着永远不会复制,因此sbox内部外部setwidth是相同的对象。

在这里阅读:如何将对象传递给 C++ 中的函数?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用另一个类的公共成员函数作为参数调用线程

来自分类Dev

对作为另一个类成员的函数的未定义引用

来自分类Dev

std :: async与成员函数,持有另一个成员函数作为参数

来自分类Dev

std :: async与成员函数,持有另一个成员函数作为参数

来自分类Dev

无效使用非静态成员函数-类成员函数调用另一个类成员函数

来自分类Dev

您如何访问另一个类中一个类的成员函数?

来自分类Dev

如何从另一个嵌套类中调用某个封闭类的嵌套类的函数指针成员的值?

来自分类Dev

设置值 - 在构造函数中 - 从另一个类

来自分类Dev

在另一个类的构造函数中使用一个类作为参数

来自分类Dev

从C ++中的类模板中的函数调用另一个成员函数

来自分类Dev

将成员函数地址传递给另一个类的函数

来自分类Dev

如何从另一个函数调用属于类成员的函数?

来自分类Dev

如何通过另一个函数传递变化的成员函数?

来自分类Dev

Typescript 成员函数返回另一个函数

来自分类Dev

另一个类的模板成员函数中的模板类中的调用方法

来自分类Dev

调用另一个类的成员函数的类设计

来自分类Dev

如何将以args作为参数的成员函数传递给另一个成员函数?

来自分类Dev

如何将非静态成员函数作为模板参数传递给另一个成员函数?

来自分类Dev

在类中以另一个函数作为参数调用函数

来自分类Dev

R:通过设置其他参数,将多个参数中的一个作为一个参数传递给另一个函数

来自分类Dev

我如何获得一个类成员函数以访问另一个类成员函数的私有成员?

来自分类Dev

PHP函数作为另一个函数的参数

来自分类Dev

函数参数作为另一个函数的名称?

来自分类Dev

接收函数作为另一个函数的参数

来自分类Dev

如何将一个类的函数作为另一个类的另一个函数的参数传递

来自分类Dev

C ++将成员函数传递给另一个类

来自分类Dev

C ++:如何将指针传递给另一个类的成员函数?

来自分类Dev

如何在Matlab的另一个m文件中调用类的成员函数?

来自分类Dev

C ++如何将成员函数指针传递给另一个类?

Related 相关文章

  1. 1

    如何使用另一个类的公共成员函数作为参数调用线程

  2. 2

    对作为另一个类成员的函数的未定义引用

  3. 3

    std :: async与成员函数,持有另一个成员函数作为参数

  4. 4

    std :: async与成员函数,持有另一个成员函数作为参数

  5. 5

    无效使用非静态成员函数-类成员函数调用另一个类成员函数

  6. 6

    您如何访问另一个类中一个类的成员函数?

  7. 7

    如何从另一个嵌套类中调用某个封闭类的嵌套类的函数指针成员的值?

  8. 8

    设置值 - 在构造函数中 - 从另一个类

  9. 9

    在另一个类的构造函数中使用一个类作为参数

  10. 10

    从C ++中的类模板中的函数调用另一个成员函数

  11. 11

    将成员函数地址传递给另一个类的函数

  12. 12

    如何从另一个函数调用属于类成员的函数?

  13. 13

    如何通过另一个函数传递变化的成员函数?

  14. 14

    Typescript 成员函数返回另一个函数

  15. 15

    另一个类的模板成员函数中的模板类中的调用方法

  16. 16

    调用另一个类的成员函数的类设计

  17. 17

    如何将以args作为参数的成员函数传递给另一个成员函数?

  18. 18

    如何将非静态成员函数作为模板参数传递给另一个成员函数?

  19. 19

    在类中以另一个函数作为参数调用函数

  20. 20

    R:通过设置其他参数,将多个参数中的一个作为一个参数传递给另一个函数

  21. 21

    我如何获得一个类成员函数以访问另一个类成员函数的私有成员?

  22. 22

    PHP函数作为另一个函数的参数

  23. 23

    函数参数作为另一个函数的名称?

  24. 24

    接收函数作为另一个函数的参数

  25. 25

    如何将一个类的函数作为另一个类的另一个函数的参数传递

  26. 26

    C ++将成员函数传递给另一个类

  27. 27

    C ++:如何将指针传递给另一个类的成员函数?

  28. 28

    如何在Matlab的另一个m文件中调用类的成员函数?

  29. 29

    C ++如何将成员函数指针传递给另一个类?

热门标签

归档