我在我的标题"Test.h"中有一个类的变量,它没有没有参数的构造函数.我有一个像这样的构造函数:
Test::Test() // <-- Here he complains:
// error: no matching function for call to ‘Beer::Beer()’
{
int i = 2;
theVar = Beer(1, i); // Beer(int, int) is the only constructor
}
Run Code Online (Sandbox Code Playgroud)
但我正在构造函数体中的(空)初始化列表之后初始化它.
我怎么解决这个问题?如果它有一个名字,这个问题怎么称呼?
谢谢
好吧,假设我有这个数组:
public int[][] loadBoard(int map) {
if (map == 1) { return new int[][] {
{2,2,24,24,24,24,24,1,3,0,0,0,1 }, {
2,2,24,23,23,23,24,1,3,0,0,0,1 }, {
1,1,24,23,23,23,24,1,3,3,3,3,1 }, {
1,1,24,24,23,24,24,1,1,1,1,3,1 }, {
1,1,1,1,7,1,1,1,1,1,1,3,1 }, {
6,1,1,1,7,7,7,7,7,1,1,1,1 }, {
6,3,3,1,3,3,3,1,7,7,7,3,1 }, {
6,72,3,3,3,1,1,1,1,7,7,1,1 }, {
3,3,3,3,1,1,1,1,1,1,7,1,1 } }; } }
return board;
Run Code Online (Sandbox Code Playgroud)
我可以称之为:
board = loadBoard(1);
Run Code Online (Sandbox Code Playgroud)
但是......假设我想将地图1数组(数组左下角)的数字72更改为数字... 21.你能这样做吗?
我有一个类,只有这样的构造函数:
IntroScreen::IntroScreen(Game *game) :
View(game), counter(0.0f), message(-1), continueAlpha(255),
continueVisible(false), screenAlpha(255), fadeIn(false), fadeOut(false)
{
}
Run Code Online (Sandbox Code Playgroud)
在某个方法的某个地方,我有这个if语句
if (counter > 10.0f)
Run Code Online (Sandbox Code Playgroud)
Valgrind为这条线说:
条件跳转或移动取决于未初始化的值
但我在初始化列表中初始化它!我想我相信Valgrind.因为,有时一切都是正确的,有时没有任何事情发生....所以,可能counter得到一个错误的值,所以它需要很长时间,直到计数器达到10.
我已经检查了我的代码,我使用counter来解决一些错误.但我认为你不能用C++语句"取消初始化一个值"......
这些是我使用的所有行(初始化列表除外)counter:
counter += speed;
counter = 20.0f;
counter += game->getSpeedFactor();
if (counter >= 15.f)
counter = 15.f;
if (counter > 10.0f)
Run Code Online (Sandbox Code Playgroud)
Valgrind给出相同的输出screenAlpha.
这两个变量都是private,我没有friend班级....
那么发生了什么?问题可能是什么?
编辑:
我打印出了值:
在构造函数中,它是correnct:0
在我的方法中,它是垃圾.它引用随机值,如:
-97298.8...-106542.2...print语句是方法的第一行,其中包含所有赋值counter.
这可能是问题!! ??
在我的Game课堂上,我IntroScreen像这样初始化:
Game::Game() : /* Some other …Run Code Online (Sandbox Code Playgroud) 我有这个简单的代码:
#include <iostream>
#include <fstream>
using namespace std;
int main(void)
{
ifstream in("file.txt");
string line;
while (getline(in, line))
{
cout << line << " starts with char: " << line.at(0) << " " << (int) line.at(0) << endl;
}
in.close();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
打印:
0.000000 0.000000 0.010909 0.200000 starts with char: 32
A 0.023636 0.000000 0.014545 0.200000 starts with char: A 65
B 0.050909 0.000000 0.014545 0.200000 starts with char: B 66
C 0.078182 0.000000 0.014545 0.200000 starts with char: …Run Code Online (Sandbox Code Playgroud) 我添加了一个值:
HKLM\Software\Microsoft\Windows\CurrentVersion\Run
Run Code Online (Sandbox Code Playgroud)
看起来像这样:
Value Name: LDE
Value Data: "java -jar C:\LDE\lde.jar"
Run Code Online (Sandbox Code Playgroud)
真的用引号(因为所有其他地方也有引号).添加后,我重新启动了计算机,但它没有自动启动.
将我的jar包装在exe帮助中吗?
我正在运行Windows 7.
有帮助吗?
提前致谢.
当我删除引号时,它可以工作.但现在还有一个终端,我不需要......
我有这个字符串:
std::string str = "presents";
Run Code Online (Sandbox Code Playgroud)
当我遍历字符时,它们按此顺序排列:
spresent
Run Code Online (Sandbox Code Playgroud)
所以,最后一个char首先出现.
这是代码:
uint16_t c;
printf("%s: ", str.c_str());
for (unsigned int i = 0; i < str.size(); i += extractUTF8_Char(str, i, &c)) {
printf("%c", c);
}
printf("\n");
Run Code Online (Sandbox Code Playgroud)
这是exctract方法:
uint8_t extractUTF8_Char(string line, int offset, uint16_t *target) {
uint8_t ch = uint8_t(line.at(offset));
if ((ch & 0xC0) == 0xC0) {
if (!target) {
return 2;
}
uint8_t ch2 = uint8_t(line.at(offset + 1));
uint16_t fullCh = (uint16_t(((ch & 0x1F) >> 2)) << 8) | ((ch & 0x3) << …Run Code Online (Sandbox Code Playgroud) 我有一台服务器,我可以跟踪一些数据.当我使用管理员应用程序连接到服务器时检查数据的当前状态.我使用5秒的刷新率.服务器第一次发送数据时,它可以正常工作.但第二次,当数据发生变化时,管理员方面没有收到最新数据.我通过ObjectOutputStream和ObjectInputStream发送包含在类中的数据:
这是数据的包装类:
public class Leerling implements Serializable {
public int llnID;
public String naam;
public String voornaam;
public String klas;
public int klasNummer;
public Date geboorteDatum;
public String getFullName()
{
return voornaam + " " + naam;
}
@Override
public String toString() {
return "Leerling{" + "llnID=" + llnID + ", naam=" + naam + ", voornaam=" + voornaam + ", klas=" + klas + ", klasNummer=" + klasNummer + ", geboorteDatum=" + geboorteDatum + '}';
}
}
public class …Run Code Online (Sandbox Code Playgroud) 我有一个计时器例程,我想每两个小时执行一次.但我的下面的逻辑似乎执行得比预期的要早.有谁知道我做错了什么?
(new Timer()).scheduleAtFixedRate(new TimerTask()
{
@Override
public void run()
{
try
{
//TODO: Perform routine.
}
catch (Exception ex)
{
try
{
throw ex;
}
catch (Exception e)
{
}
}
}
}, 0, (1000 * 60 * 120));
Run Code Online (Sandbox Code Playgroud)
谢谢.
如何调用身份验证窗口,从类中为当前应用程序授予 root 一段时间的访问权限。例如,我正在编写一些应用程序来处理分区,因此它需要 root 权限才能执行某些操作。