我是C++类的新手(< 1周),所以请原谅任何误解。将指针传递给另一个类中的新对象(C++)
为了简单起见,我会尽量简化它。我真正的系统有更多的功能和变量,但是我已经把它们排除在外了,所以我可以试着解决我的问题。
我有2个A和B类声明。我在A类中的一个函数是一个返回字符串的getName()函数。我为类A动态分配了对象,并且我相信该程序的规范要求我将该对象的指针传递给类B的对象,以便可以从类B访问getName()函数。我尝试通过使用指向类A的指针在类B中打印名称。以下是我的通用代码解释。
#include <iostream>
using namespace std;
class A
{
public:
A(string name)
{
getName();
}
string getName()
{
return name;
}
private:
string name;
};
class B
{
public:
B(A *objectA)
{
print();
}
void print()
{
cout << objectA->getName();
}
private:
A *objectA;
};
int main()
{
A *objectA = new A("nameGoesHere");
B *objectB = new B(objectA);
}
此代码是非常普通,但它会导致分段错误11,我不明白为什么。有人可以向我解释这个,也可以提供一个更好的方法来将一个指针传递给一个类,并将它传递给另一个类。提前致谢。
'B'的构造函数永远不会保存它得到的'A *'。 – Michael