- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使插入运算符过载。一种方法有效,另一种方法无效 - 但我不确定为什么,因为它们看起来与我相同。这是相关代码(不相关的部分被切掉):
#include <string>
#include <fstream>
#define UINT unsigned int
///////////////////////////////////////////////////////////
class Date
{
public:
// These just return unsigned ints
UINT Month();
UINT Day();
UINT Year();
UINT month;
UINT day;
UINT year;
};
///////////////////////////////////////////////////////////
class BinaryFileWriter
{
public:
virtual bool Open(string i_Filename);
void Write(UINT i_Uint);
private:
ofstream ofs;
};
template <typename T1>
BinaryFileWriter& operator << (BinaryFileWriter& i_Writer, T1& i_Value)
{
i_Writer.Write(i_Value);
return(i_Writer);
}
bool BinaryFileWriter::Open(string i_Filename)
{
ofs.open(i_Filename, ios_base::binary);
}
void BinaryFileWriter::Write(UINT i_Uint)
{
ofs.write(reinterpret_cast<const char*>(&i_Uint), sizeof(UINT));
}
///////////////////////////////////////////////////////////
void Some_Function(Date i_Game_Date)
{
BinaryFileWriter bfw;
bfw.Open("test1.txt");
// This works
UINT month = i_Game_Date.Month();
UINT day = i_Game_Date.Day();
UINT year = i_Game_Date.Year();
bfw << month << day << year;
// This does not - gives me error 'error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'unsigned int' (or there is no acceptable conversion) '
bfw << (m_Game_Date.Month()) << (m_Game_Date.Day()) << (m_Game_Date.Year());
那么,为什么第一行输出(我首先获得 UINT 值,然后再输出)编译得很好,但第二行(我使用日期方法的返回值作为我的重载插入运算符的输入)编译得不好?
最佳答案
在第一行,你可以使用month
, day
, 和 year
可以转换为INT&
.
在第二行中,您使用了成员函数的返回值。它们是临时对象。它们不能绑定(bind)到 INT&
.
为了能够使用,
bfw << (m_Game_Date.Month()) << (m_Game_Date.Day()) << (m_Game_Date.Year());
operator<<
的第二个参数函数必须是 T1 const&
, 不是 T1&
.
template <typename T1>
BinaryFileWriter& operator << (BinaryFileWriter& i_Writer, T1 const& i_Value)
{
i_Writer.Write(i_Value);
return(i_Writer);
}
关于c++ - 重载插入运算符 : no operator found which takes a right-hand operand of type 'unsigned int' (or there is no acceptable conversion),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31601987/
我试图理解 java.util.concurrent.locks 库,并希望实现两个通过列表运行的线程,而第二个线程不应超过(领先)第一个线程。具体来说,我想实现手动锁定。 我写了下面的代码,但不起作
我正在寻找 Adobe Reader 中的张开的手/闭合的手 鼠标光标。他们在哪里?如果它们是非标准的,我用 C# 创建它们的最简单方法是什么? 最佳答案 是的,它们是非标准的。您只需要四处搜索,
我有这些警告,但我不知道如何解决它们。 warning: left-hand operand of comma has no effect warning: right-hand operand of
我在网站上寻求帮助,但仍然找不到此问题的答案。 这是代码: import java.util.Scanner; public class Player { private Card[] hand; p
当我尝试这样做时出现错误 friend std::ostream& operator<<(std::ostream& os, const hand& obj) { return obj.sho
我之前没有学过javascript,完全不知道自己该怎么做,因为我只是跟着别人的项目,希望有人能告诉我如何修改这些错误的地方。谢谢T_T 最佳答案 改变 function aniSprite (col
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 7 年前。 Improve t
题目地址:https://leetcode.com/problems/hand-of-straights/description/ 题目描述 Alice has a hand of cards,
我有一个包含几个变量的循环;其中一个在每一步递增。然而,有时,这个变量可能会被重置为 0。因此我可以写: (loop with z = 0 ... do (progn
在 this link ,期望的结果是当光标悬停在图例上时,鼠标不会变为手形。我怎样才能实现它? 我不确定,但是这样的东西有用吗? window.setTimeout("document.body.s
我有一个 GameActivity 和一个 GameOverActivity。我将游戏积分保存在 GameActivity 中,但会在 GameOverActivity 中显示这些积分。我必须做什么?
这个问题已经有答案了: Output of System.out.println(object) (4 个回答) 已关闭 9 年前。 我不确定为什么会得到这个输出。当我尝试为我的扑克程序打印一手牌时。
我使用 carousel bootstrap 3 来使用幻灯片文本。当第 1 行文本长到底部(例如:高度 300 像素)而第 2 行文本太短(例如:仅 10 像素)时,问题是当我们单击第 # 行旁边时
如何使用 JavaScript 在 td 元素中添加样式属性 cursor? 我已经试过了: var tabla = document.getElementById("table"); var fil
有没有办法从导入的模块中获取异常处理输出并从调用程序中处理它?例如,我有一个写入 HTTP 异常的导入模块 except urllib2.HTTPError, e: sys.stderr.wri
我在这里遵循 W3C 的标准 http://www.w3.org/TR/CSS2/ui.html在这里 http://www.quirksmode.org/css/cursor.html#note .
我正在使用 Unity 构建汽车模拟器游戏。对于输入,我使用 Logitheck 方向盘 G29。现在我需要使用 Hand Controller 来加速或刹车。这是我的手控器手控器 HC1 Link
我在 chrome 浏览器中运行我的 flutter 应用程序,它会显示以下错误。 Do not call didCreateEngineInitializer by hand. Start with
我想为我的 Lable 设置一个鼠标监听器,这样当用户将鼠标放在标签上时,我可以将光标更改为 HAND_CURSOR。 我试图设置样式 css“cursor: hand;”对于这个标签,但是在运行
我正在使用 idTCPServer 来处理数据。对于新设备,我需要将套接字移交给 dll(停止 tcp 服务器从该套接字读取数据)。 Indy 或 ICS 可以实现这一点吗? [编辑]出于测试目的,我
我是一名优秀的程序员,十分优秀!