C++传递一个对象

标签 c++ object pass-by-reference

我目前正在学习 C++,但它并没有像我预期的那样工作。我为 BowlingGame 制作了一些类(class)(只是一些基于文本的类(class))并且效果很好。但现在我想将 BowlingGame 的对象传递给另一个类,称为 ScoreCalculator。

头文件如下所示:

#ifndef SCORECALCULATOR_H
#define SCORECALCULATOR_H
#include "BowlingGame.h"

class ScoreCalculator {
private:
    BowlingGame * game;
public:
    //constructor
    ScoreCalculator(const BowlingGame &game);

    //setters
    void setGame(const BowlingGame &game);
};

#endif // SCORECALCULATOR_H

实现看起来是这样的:

#include "ScoreCalculator.h"
#include "BowlingGame.h"
#include <iostream>

using namespace std;

ScoreCalculator::ScoreCalculator(const BowlingGame &game) {
    setGame(game);
}

void ScoreCalculator::setGame(const BowlingGame &gamse) {
    //* game = gamse; this fails
    //cout << gamse.getLastFrameNummer(); this works
}

我想在实例变量游戏中保存“BowlingGame 对象”,但由于某种原因我的控制台应用程序崩溃了。我不知道我做错了什么。失败在规则中: * game = gamse; 我在互联网上查找了一些示例,但找不到解决方案。

最佳答案

这里的问题是您没有分配指针。为什么不在标题中将“游戏”定义为 BowlingGame 游戏;?这样您的其他代码就可以正常工作。这意味着 BowlingGame 结构被“复制”到类(class)中的结构中,但这听起来正是您所追求的。

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

相关文章:

c++ - 括号序列的类型

c++ - 为什么我不能将 operator[] 用于 std::unordered_map<std::pair<int,int>, int> 而是用于 `std::map` 的相同键值对?

r - R包是什么类型的对象?

javascript - 使用 Lodash 计算并显示每人的记录数

c++ - 反转字符串中单词的字母

delphi - "var"和 "out"参数有什么区别?

c++ - 使用 if(true) 子句缩小资源管理器对象的范围?

c++ - std::timed_mutex::try_lock_for 立即失败

php - 将 JavaScript 对象传递给 HIDDEN 输入字段,并将其作为数组/对象捕获到服务器端

c++ - 按值传递和按引用传递