gpt4 book ai didi

C++ 将指针(指向一个对象)传递给另一个类中的函数

转载 作者:行者123 更新时间:2023-11-28 02:59:11 25 4
gpt4 key购买 nike

我需要将指向类实例的指针传递给另一个类中的函数,以便该函数可以访问第一个类的一些公共(public)变量。

虽然我不是 C++ 的新手,但这是我第一次以这种方式使用指针,所以我不太明白如何让它工作。

我已经完成的类似于以下内容:

class foo
{
public:
int data;
};

class bar
{
public:
void function(foo *ptr); //error points to this line
};

void bar::function(foo *ptr)
{
ptr->data = 1; //do something with data inside foo class.
}



main()
{

foo foo1; //init foo as foo1.

foo *ptr_foo; //pointer of type foo called ptr_foo

prt_foo = &foo1; //point ptr_foo to the address of foo1

bar bar1; //init bar as bar1

bar1.function(ptr_foo) //call function1 and pass the address of our instance of foo to it.

}

我在定义函数 (foo *ptr) 的行中收到来自类栏的错误,提示“语法错误:标识符‘foo’”。

尝试在 main() 中调用函数 (foo ptr*) 时,我也收到错误“‘bar::function’:函数不接受 1 个参数”,我相信这与第一个错误有关是吗?

在我正在处理的程序中,foo()、bar() 和 main() 都位于与头文件链接的不同源文件中。这会导致我的问题吗?

我发现这种情况下的指示很难理解,而且阅读再多也无法解决这个特定问题。

如果有人能告诉我如何使这项工作变得更好,那么解释给定解决方案的解决方案中发生了什么以及为什么我所做的不起作用会更好。

感谢您的帮助。

编辑:上面的代码不打算编译。我的实际代码比我合理发布的要大得多。

最佳答案

如果 foo 和 bar 在不同的头文件中,在 bar 类声明之前在 bar 中添加前向声明:

class foo;

关于C++ 将指针(指向一个对象)传递给另一个类中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21286457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com