C++嵌套类问题
C++ nested classes issue
我在C++和嵌套类方面遇到了一些问题。例如:
在主要.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;}
在波黑
class B
{
public:
B(type);
A *Aglobal;}
在 A.h
class A
{
public:
A(type1,type2);
int parametro;}
主要的回声是不同的.cpp我无法理解原因。
在 B 的构造函数中定义类型 A 的局部变量,并返回指向该局部变量的指针。使用该指针会导致未定义的行为,因为它指向的对象不再存在。
该问题的解决方案可能包括:
-
在堆上分配 A 对象。但是,请尝试将其包装在适当的智能指针中,而不是简单的指针中。
-
在 B 中具有类型 A 的成员并返回成员的地址
具有 具有静态存储持续时间的 A 类型的对象,例如指针本身。
这三者之间的决定在很大程度上取决于你的问题的背景,这是无法从你的问题中推断出来的。
还有一件事。嵌套类是在另一个类的作用域中定义的类。您的示例中没有嵌套类。
在 B 构造函数中,您正在保存局部变量的地址。 有几种方法可以解决此问题,正确的方法取决于您尝试对 A 执行的操作。
此外,您没有嵌套类。 嵌套类在另一个类中定义,如下所示:
class OuterClass {
class InnerClass {
//class members
};
//class members
};
相关文章:
- 嵌套for循环C++的问题(初学者)
- 嵌套While循环不起作用(C++问题)
- 超级对撞机2D阵列:生成嵌套:包装/尺寸问题
- 为什么使用 2 个嵌套循环 O(n^2) 复杂度来解决二和问题,当只改变循环计数器逻辑时运行得更快?
- c++在实现模板化嵌套类时遇到问题
- 如果不是这样,我需要帮助理解这个嵌套的问题
- 嵌套的类成员变量不可访问.链表设置.V、下一个和新的问题
- 按升序对数组进行排序嵌套循环问题
- C++中嵌套在另一个 LinkedList 中的 LinkedList 整数上的回调函数问题
- 循环时嵌套有任何问题
- 这个嵌套循环C++有什么问题?
- 跳跃游戏中嵌套的循环问题
- 嵌套模板化类的问题
- 访问嵌套类中的变量时出现问题
- C++ 嵌套构造函数调用问题
- 嵌套类模板专用化问题
- C 嵌套的Coroutine破坏问题
- 嵌套模板问题C++
- C 完美的数字,带有嵌套循环问题
- 嵌套 while 循环,包含文件 c++ 问题