如何制作多行预处理器宏?我知道怎么做一行:
#define sqr(X) (X*X)
Run Code Online (Sandbox Code Playgroud)
但我需要这样的东西:
#define someMacro(X)
class X : public otherClass
{
int foo;
void doFoo();
};
Run Code Online (Sandbox Code Playgroud)
我怎样才能让它发挥作用?
这只是一个例子,真正的宏可能很长.
当我尝试编译此代码时,我得到:
52 C:\Dev-Cpp\Projektyyy\strategy\Tiles.h invalid use of undefined type `struct tile_tree_apple'
46 C:\Dev-Cpp\Projektyyy\strategy\Tiles.h forward declaration of `struct tile_tree_apple'
Run Code Online (Sandbox Code Playgroud)
我的代码的一部分:
class tile_tree_apple;
class tile_tree : public tile
{
public:
tile onDestroy() {return *new tile_grass;};
tile tick() {if (rand()%20==0) return *new tile_tree_apple;};
void onCreate() {health=rand()%5+4; type=TILET_TREE;};
};
class tile_tree_apple : public tile
{
public:
tile onDestroy() {return *new tile_grass;};
tile tick() {if (rand()%20==0) return *new tile_tree;};
void onCreate() {health=rand()%5+4; type=TILET_TREE_APPLE;};
tile onUse() {return *new tile_tree;};
};
Run Code Online (Sandbox Code Playgroud)
我真的不知道该怎么做,我搜索了解决方案,但我找不到任何与我的问题相似的东西......实际上,我有更多的课程与父母"瓷砖",这是好的之前... Thanx任何帮助.
编辑:
我决定将所有返回的类型更改为指针以避免内存泄漏,但现在我得到了:
27 C:\Dev-Cpp\Projektyyy\strategy\Tiles.h ISO …Run Code Online (Sandbox Code Playgroud) 我正在用Java编写一个简单的聊天,我想检查是否有一些数据在等待BufferedReader.我读过关于NIO的文章,但我并没有完全理解它.这是我的一些代码:
public void Send(String data)
{
out.println(data);
}
public String Recv()
{
if (dataIncomming)
{
try {
return in.readLine();
} catch (IOException e) {
System.err.println("Send: Error on BufferedReader.readLine() - IOException");
}
}
else return "";
}
Run Code Online (Sandbox Code Playgroud)
我不知道该填什么dataIncomming...
我有一个priority_queue,我想修改它的一些内容(优先级值),那么队列会被使用吗?
这取决于它是否按下推/弹(更可能,因为你只需要"插入",而不是整体),或访问顶部或弹出时.
我真的想改变队列中的一些元素.像这样的东西:
priority_queue<int> q;
int a=2,b=3,c=5;
int *ca=&a, *cb=&b, cc=&c;
q.push(a);
q.push(b);
q.push(c); //q is now {2,3,5}
*ca=4;
//what happens to q?
// 1) {3,4,5}
// 2) {4,2,5}
// 3) crash
Run Code Online (Sandbox Code Playgroud) 我有一张collsion地图,有些地方我想成为光源.光源提供的光实际上是我可以看到地面的形状.它现在看起来像这样:

所以光线穿过墙壁.我想让它看起来像这样:

(我标记了墙壁与深黄色的碰撞)
所以当遇到墙壁时光线会停止.我想获得正确光线的形状,最好的是包含它的位图)
我的第一个想法是从光源投射光线并检查它们何时与墙壁碰撞(我知道如何做到这一点),但是我需要每隔0.001度投射一次光线,所以它太多时间来产生光线.接下来的事情是光的形状并不总是圆形,有时它可以是椭圆形或半椭圆形,甚至是三角形或圆形的一部分.一般来说,我的光点位图不会碰到任何东西,我想稍微减去它以使它看起来像第二张图像.
最后一件事,我使用了allegro 4.2.1,但之前提到的所有位图都是具有0和1的2维度数组.
Thanx任何帮助,抱歉长问题和我的英语不好.
我想在某个范围内找到最低值.
我每次都要迭代数组还是有动态方法?
可以说我有输入数组:
index: 0 1 2 3 4 5 6 7
value: 1 4 6 1 6 7 2 3
Run Code Online (Sandbox Code Playgroud)
然后我必须选择<a,b>(包括)范围内的最小值.例如:
min(0,7) = 1
min(0,2) = 1
min(4,6) = 2
min(1,2) = 4
Run Code Online (Sandbox Code Playgroud)
我对最快的解决方案感兴趣,最好是在恒定的时间内获得结果.
在此期间不会更改数组.
我写的不是那么简单的应用程序,并决定制作applet.我有.jar存档和主类有chat.java(它包含init()并扩展JApplet).我在HTML文件中有这个代码:
<applet code="chat.class" archive="chat.jar" width="150" height="150">
Error!
</applet>
Run Code Online (Sandbox Code Playgroud)
它给出了错误
java.lang.UnsupportedClassVersionError: chat : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.defineClassHelper(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.access$100(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.plugin2.applet.Plugin2ClassLoader.findClassHelper(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
at …Run Code Online (Sandbox Code Playgroud) 我正在尝试在标准控制台中制作俄罗斯方块游戏.我需要非阻塞getch(),因此块可以在不按任何键的情况下掉落.如果没有按下键,则返回-1的函数会很好,否则键码.
递归是否会严重影响处理器和内存?我的意思是,我的一个线程有一个方法,很可能自称.让我们说它可以每秒自我调用一次.我的应用程序应该至少运行24小时而不会停止,因此它提供了(60*60*24)86400自称方法.
它如何影响第二(主)线程?
抱歉我的英文不好,没有代码,但我不是在家里写的.
我正在创建一个网站,您可以在其中购买虚拟点文件,然后下载它们.我不想让用户在没有购买的情况下下载文件,所以我必须隐藏它们.我把所有文件放在一个文件夹中,未经许可除了主机以外的任何人,问题是当有人购买文件并想下载它时.
我决定创建一个文件getter,它将检查用户的权限,然后打印出文件内容.我的代码到目前为止:
<?php
require_once('content/requirements.php'); //mysql connections
secure(1); //disconnect unlogged users
if (!isset($_GET['id'])) //if no file id provided
die();
$fid=mysql_real_escape_string($_GET['id']); //file id
$query="SELECT * FROM files WHERE user_id = "$_SESSION['user_id']." AND file_id = ".$id;
$q=mysql_query($query);
if (mysql_num_rows($q)!=1) //if no permission for file or multipe files returned
die();
$file=mysql_fetch_array($q); //file id
$sub=mysql_fetch_array(mysql_query("SELECT * FROM sub WHERE id = ".$file['file_id'])); //payment id
?>
Run Code Online (Sandbox Code Playgroud)
现在当我确定用户有权这样做时,phpScript应该编写文件内容并发送适当的标题让用户下载它.
如何逐字节地读取文件并打印它以及我应该在header()中写什么,以使文件可下载(因此您不必复制其内容).
也许这不是最好的方法,但这是我一段时间以来最好的想法.
Thanx任何帮助.