构建用于存储管理设置的MySQL表的最佳方法是什么?
像这样?
Setting _|_ Value
setting1 | a
setting2 | b
setting3 | c
setting4 | d
setting5 | e
Run Code Online (Sandbox Code Playgroud)
或者像这样?
|--------|_setting1_|_setting2_|_setting3_|_setting4_|_setting5_|
Settings | a | b | c | d | e |
Run Code Online (Sandbox Code Playgroud)
或者其他一些方式?
我想确保我理解按值传递和正确传递.特别是,我正在查看++对象的增量运算符的前缀/后缀版本.
我们假设我们有以下课程X:
class X{
private:
int i;
public:
X(){i=0;}
X& operator ++ (){ ++i; return *this; } //prefix increment
X operator ++ (int unused){ //postfix increment
X ret(*this);
i++;
return ret;
}
operator int(){ return i; } //int cast
};
Run Code Online (Sandbox Code Playgroud)
首先,我是否正确实现了前缀/后缀增量运算符?
第二,与前缀运算符相比,后缀运算符的内存效率如何?具体来说,X当使用每个版本的运算符时,会创建多少个对象副本?
准确地解释通过引用返回和按值返回会发生什么可能有助于我理解.
编辑:例如,使用以下代码...
X a;
X b=a++;
Run Code Online (Sandbox Code Playgroud)
... a和b现在是别名吗?
我正在读一个包含以下功能的程序,即
int f(int n) {
int c;
for (c=0;n!=0;++c)
n=n&(n-1);
return c;
}
Run Code Online (Sandbox Code Playgroud)
我不太明白这个功能打算做什么?
为什么我不能将基类实例转换为派生类?
例如,如果我有一个扩展C类的B类,为什么我不能这样做呢?
B b=(B)(new C());
Run Code Online (Sandbox Code Playgroud)
或这个?
C c=new C();
B b=(B)c;
Run Code Online (Sandbox Code Playgroud)
好吧,让我更具体地说明我正在做什么.这就是我所拥有的:
public class Base(){
protected BaseNode n;
public void foo(BaseNode x){
n.foo(x);
}
}
public class BaseNode(){
public void foo(BaseNode x){...}
}
Run Code Online (Sandbox Code Playgroud)
现在我想创建一组扩展Base和Basenode的新类,如下所示:
public class Derived extends Base(){
public void bar(DerivedNode x){
n.bar(x);//problem is here - n doesn't have bar
}
}
public class DerivedNode extends BaseNode(){
public void bar(BaseNode){
...
}
}
Run Code Online (Sandbox Code Playgroud)
所以基本上我想通过扩展它们并向它们添加一个函数来向Base和BaseNode添加新功能.此外,Base和BaseNode应该可以单独使用.
如果可能的话,我真的很想在没有泛型的情况下这样做.
好吧,所以我最终搞清楚了,部分归功于Maruice Perry的回答.
在我的构造函数中Base,n被实例化为BaseNode.我所要做的就是重新实例n作为一个DerivedNode在构造函数中我的派生类,它完美的作品.
我阅读了维基百科的文章,但这似乎超出了我的理解范围.它说这是为了优化,但它与其他任何优化方法的方法有什么不同?
给我介绍线性编程的答案让我可以开始深入研究一些不太适合初学者的材料,这将是最有帮助的.
我有一个关于装配的基本问题.
如果它们也可以在内存上工作,为什么我们只在寄存器上进行算术运算呢?
例如,以下两个原因(基本上)都将相同的值计算为答案:
片段1
.data
var dd 00000400h
.code
Start:
add var,0000000Bh
mov eax,var
;breakpoint: var = 00000B04
End Start
Run Code Online (Sandbox Code Playgroud)
片段2
.code
Start:
mov eax,00000400h
add eax,0000000bh
;breakpoint: eax = 0000040B
End Start
Run Code Online (Sandbox Code Playgroud)
从我所看到的,大多数文本和教程主要在寄存器上进行算术运算.使用寄存器只是更快吗?
编辑:那很快:)
给出了一些很好的答案; 根据第一个好的答案选择了最佳答案.
我正在开发一个小型IDE,我想知道在哪里可以找到一组IDE图标.一些谷歌搜索没有提出任何有用的东西.我想这可能是因为'ide icon set'不会获得很多购买(与更通用的图标相比).
无论如何,有谁知道我可以在哪里得到一些这样的图标?某些图标,如保存,加载等,我可以找到自己.我正在寻找更多与调试相关的图标.
我感兴趣的图标包括:
我想为主工具栏添加一些较大的工具栏,还有一些迷你版可以放在下拉菜单中的重要操作旁边.
我很可能不会从我简陋的IDE中获利,但在我"商业化"的情况下,我希望图标的许可证不会限制我这样做.但是,我在about菜单和代码中的归属没有问题.
最后,如果商业图标相当便宜,它们根本不是禁止的,但我更喜欢免费的:)
谢谢!
这是一组示例图标,如果它包含我需要的实际图标,那将是完美的(大小/样式).事实上,我可能会使用其中一些图标,例如剪切,粘贴和保存图标.我也可以使用'play'和'record'按钮分别启动和创建断点.
我特别想找一步/跑到光标的图标.首选图标大小:22x22像素.
编辑: Netbeans图标怎么样?它们是完美的尺寸,看起来非常漂亮,但我似乎无法找到关于我是否可以使用它们的任何信息.我意识到netbeans是开源的,但我无法弄清楚我是否可以使用这些图标.
编辑:事实证明,使用NetBeans图标很好,所以我将继续这样做.感谢大家!
我想开始用C++学习多线程.我也在Java中学习它.在Java中,如果我编写一个使用多线程的程序,它将在任何地方工作.但是在C++中,多线程不依赖于特定于平台的API吗?如果是这样,那似乎会妨碍可移植性.
如何在不导致可移植性问题的情况下在C++中进行多线程处理?boost的线程库是一个很好的解决方案吗?
作为旁注 - 如何将多线程实现为库?这不是必须由编译器完成的事情吗?
我正在读这个:http://en.wikipedia.org/wiki/Thread_safety
以下函数是否是线程安全的?
void foo(int y){
int * x = new int[50];
/*...do some stuff with the allocated memory...*/
delete [] x;
}
Run Code Online (Sandbox Code Playgroud)
在文章中它说,为了线程安全,你只能使用堆栈中的变量.真?为什么?上述函数的后续调用不会在其他位置分配内存吗?
编辑:啊.看起来我误读了文章的这一部分:
子例程是可重入的,因此是线程安全的,如果
- 它使用的唯一变量来自堆栈
(我接受了它的意思
子例程是可重入的,因此是线程安全的,当且仅当
- 它使用的唯一变量来自堆栈
,根据下面的答案,并非如此)
我一直在学习计划,我才意识到我真的不知道如何正确评论我的功能方案代码.我知道当然如何添加评论 - 你添加一个;并在其后添加评论.我的问题是我应该在评论中加入什么,我应该在哪里评论其他程序员阅读我的代码的最大可读性和可理解性?
这是我写的代码片段.这是一个叫做的函数display-n.可以使用任意数量的参数调用它,并按照提供的顺序将每个参数输出到屏幕.
(define display-n
(lambda nums
(letrec ((display-n-inner
(lambda (nums)
(display (car nums))
(if (not (equal? (cdr nums) (quote ()))
(display-n-inner (cdr nums))))))
(display-n-inner nums))))
Run Code Online (Sandbox Code Playgroud)
编辑:改进黏合,取而代之'()以(quote ())避免SO搞乱格式.
我只是不确定如何/在哪里添加评论以使其更容易理解.我见过的一些方案代码只是在顶部有注释,如果你想使用代码,这很好,但如果你想理解/修改它就没有用.
另外 - 我应该如何评论宏?
scheme comments functional-programming coding-style readability
c++ ×4
math ×2
algorithm ×1
assembly ×1
c ×1
casting ×1
class ×1
coding-style ×1
comments ×1
database ×1
heap ×1
icons ×1
increment ×1
java ×1
mysql ×1
optimization ×1
organization ×1
performance ×1
portability ×1
readability ×1
scheme ×1
stack ×1
theory ×1