我测试了以下命令,但它不起作用.
$> top -b -d 1 | grep java > top.log
Run Code Online (Sandbox Code Playgroud)
它不使用标准错误.我检查它使用标准输出,但top.log始终为空.为什么是这样?
为什么System.out.println(super)不允许?
System.out.println(this);
Run Code Online (Sandbox Code Playgroud)
这没关系,this.toString()可以自动调用和打印.当然,实例变量是OK而不是this.
但是,this并且super可以以我所知的相同方式使用.
System.out.println(super);
Run Code Online (Sandbox Code Playgroud)
那为什么会失败?我认为它应该super.toString()隐含地调用.我已阅读Java规范文档,但我没有找到原因.
我试图在很多方面将一些文件更新为旧版本,但我还没有找到.(不是永久性的,只是暂时更新以进行测试)
例如,SVN中的以下内容正常.
svn up -r 100 foo.cpp
U foo.cpp
Run Code Online (Sandbox Code Playgroud)
但在Mercurial中,'up'命令不允许文件名参数.
只有可以在Mercurial中更新整个源代码树吗?
假设test.txt是这样的:
aaaaa
aaaaa
aaaaa
测试代码是这样的:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
FILE *f = fopen("test.txt", "r+");
char buf[100];
fgets(buf, 100, f);
fputs("bbb", f);
fclose(f);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当然,我的意图是结果文件可能是这样的:
aaaaa
bbbaa
aaaaa
但在MacOSX上,它是这样的:
aaaaa
aaaaa
aaaaa
bbb
fputs()不会返回任何错误,并且在fgets()之后放置ftell()时,它会完全指向6.
那是一个错误吗?在Linux上,它完成得很好.
class phone {
public:
phone(int x) { num = x; }
int number(void) { return num; }
void number(int x) { num = x; }
private:
int num;
};
int main(void)
{
phone p1(10);
p1 = 20; // here!
return 0;
}
Run Code Online (Sandbox Code Playgroud)
嗨,大家好
我刚刚宣布了一个类似上面的简单类.
之后我将int值赋给了该类的对象,然后就可以了!
(我打印了它的价值.它存放得当)
如果没有带有int参数的构造,则发生编译错误.
所以,我认为它与构造函数有关.是对的吗?
请给我一个很好的解释.
谢谢.
我知道C,但我不擅长C++.
以下代码将崩溃(在getval()中,使用引用作为参数是ok).并且*p在第一次cout陈述之后改变了价值.看起来存在一些超出内存的覆盖.
我的问题是它崩溃的原因(或者为什么它的价值发生了变化).这是对象的"按价值呼叫",所以它应该工作吗?
class myclass {
int *p;
public:
myclass(int i);
~myclass() { delete p; }
int getval(myclass o);
};
myclass::myclass(int i)
{
p = new int;
if (!p) {
cout << "Allocation error\n";
exit(1);
}
*p = i;
}
int myclass::getval(myclass o)
{
return *o.p;
}
int main()
{
myclass a(1), b(2);
cout << a.getval(a) << " " << a.getval(b) << endl;
cout << b.getval(a) << " " << b.getval(b) << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)