gpt4 book ai didi

C++ 嵌套类问题

转载 作者:行者123 更新时间:2023-11-30 03:01:52 26 4
gpt4 key购买 nike

我在使用 C++ 和嵌套类时遇到了一些问题。例如:

在 main.cpp 中

int main()
{

B b(par);
cout << b.Aglobal->parametro;
cout << b.Aglobal->parametro;
return 0;}

在 B.cpp 中

B: B(type par)
{

A a(par1,par2);
Aglobal=&a;}

在 B.h

class B
{
public:
B(type);
A *Aglobal;}

在 A.h 中

class A
{

public:
A(type1,type2);
int parametro;}

main.cpp 回声不同,我无法理解原因。

最佳答案

您在 B 的构造函数中定义了类型 A 的局部变量,并返回指向该局部变量的指针。使用该指针会导致未定义的行为,因为它指向的对象不再存在。

问题的解决方案可能包括:

  • 在堆上分配 A 对象。但是然后尝试将其包装在适当的智能指针而不是简单的指针中。

  • 在B中有一个类型A的成员,并返回该成员的地址

  • 拥有一个具有静态存储持续时间的 A 类型对象,例如指针本身。

这三者之间的决定在很大程度上取决于您的问题的上下文,这不能从您的问题中推导出来。

还有一件事。 嵌套 类是在另一个类的范围内定义的那些类。您的示例中没有嵌套类。

关于C++ 嵌套类问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10673049/

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