C++ 将一个对象传递给另一个对象?

标签 c++ class logic

我不知道我是否遗漏了什么,但我似乎无法弄清楚如何进行这项工作,也无法在网上找到答案。

假设我有两个类,A 类和 B 类。(存储在单独的文件中)

A 类有一个函数 setName() 可以在 A 类对象中设置一个变量。

B 类有一个函数 setOtherName() 可以设置 A 类对象名称的值。

所以我这样设置setOtherName():

void setOtherName(ClassA& cla)
{
*cla.setName("foobar");
}

然后我的主脚本看起来是这样的:

Class A burger;
Class B fries;
fries.setOtherName(*burger);

这在我的原始脚本中不起作用,我收到以下错误:

error: no matching function for call to 'ClassB::setOtherName(ClassA*&)

感谢任何帮助! (抱歉造成任何混淆)

实际代码: main.cpp :

#include <iostream>
#include "quests.h"
#include "player.h"
#include <string>
#include <cstdlib>

using namespace std;

int main()
{
    quests GameQuests;
    player Player;
    GameQuests.quest1(Player);
    Player.main();

    return 0;
}

任务.cpp:

#include "quests.h"
#include "player.h"
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;

void quests::quest1(player& charact){
    cout << "By the way, what was your name?" << endl;
    person1=4;
    system("pause");
    charact->setName();
}

最佳答案

setOtherName 函数的实现应该有签名

void ClassB::setOtherName(ClassA& cla)

您需要指定它包含在 ClassB 中。在 ClassB 的类定义中,确保包含

void setOtherName(ClassA&);

此外,由于您的变量 burgerClassA 类型而不是 ClassA* 类型,因此无需取消引用变量将其传递给函数。像这样调用它

fries.setOtherName(burger);

您还错误地解除了对变量 cla 的引用。该对象通过引用而非指针传递,因此无需取消引用。

关于C++ 将一个对象传递给另一个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31106125/

相关文章:

c++ - STL Containers - vector 、列表和双端队列之间的区别

c++ - FindResource 的内核模式版本

python - 在 Python 中, 'return self' 返回对象的副本还是指针?

c++ - 用指向自定义类的指针填充数组。 C++

Python类实例在新线程中启动方法

c++ - 有没有办法在平均值中不包含负数,当输入负数时你如何终止程序?

C++/MySQL,在 1 次执行中插入 200 个数据点数组

C程序计算平均值

java - 如何搜索分成两行的单词?

php - MySQL - 将单个 ID 号关联到多个 ID 号