在语言的进步中,我一直在学习C和C++.现在我想学习C#.我知道它们之间存在一些巨大的差异 - 例如删除指针和垃圾收集.但是,我不知道两者之间的许多差异.
在转向C#时,C++程序员需要知道的主要区别是什么?(例如,我可以使用什么代替STL,它们之间的语法差异,或者其他任何可能被认为重要的东西.)
我正在为操作系统开发内核.为了执行它,我决定使用GRUB.目前,我已经连接到GRUB的脚本stage1,stage2,垫文件,这使得它可引导内核本身一起.唯一的问题是,当我运行它时,你必须让GRUB知道内核的位置和手动的大小然后启动它,如下所示:
kernel 200+KERNELSIZE boot
KERNELSIZE是块中内核的大小.这很好,一开始就没问题,但是可以在二进制文件中获取这些值并使GRUB自动启动内核吗?有关如何实现这一目标的任何建议?
目前,我正在尝试让多个beziers具有等距点.我目前正在使用三次插值来找到这些点,但是因为beziers的工作方式,某些区域比其他区域更密集,并且因为距离可变而证明了纹理映射的总体. 有没有办法通过距离而不是百分比在贝塞尔曲线上找到点数?此外,是否可以将其扩展到多个连接的曲线?
在理解(引用)之后,我很好奇是如何导致语句执行的.我的第一个想法是
(defvar x '(+ 2 21))
`(,@x)
Run Code Online (Sandbox Code Playgroud)
但这只是评估(+ 2 21),或内容x.如何运行放在列表中的代码?
我已经尝试过对几个项目使用源代码控制,但仍然没有真正理解它.对于这些项目,我们使用了TortoiseSVN并且只进行了一行修订.(没有主干,分支或其中任何一个.)如果有建议的方法来设置源控制系统,它们是什么?设置它的原因和好处是什么?集中式和分布式源代码控制系统的工作原理之间存在什么根本区别?
我一直在尝试编写一个Lisp宏,它会出于语义原因而在其他编程语言中使用相当于++的++.我试图用几种不同的方式做到这一点,但它们似乎都没有用,并且所有都被解释器接受,所以我不知道我是否有正确的语法.我对如何定义它的想法是
(defmacro ++ (variable)
(incf variable))
Run Code Online (Sandbox Code Playgroud)
但是在尝试使用它时,这给了我一个简单的错误.什么会使它工作?
在学习不同的语言时,我经常看到动态分配的对象,通常是Java和C#,如下所示:
functionCall(new className(initializers));
Run Code Online (Sandbox Code Playgroud)
我知道这在内存管理语言中是完全合法的,但是这种技术可以在C++中使用而不会导致内存泄漏吗?
我注意到,每当我编写一个使用std::cin它的程序时,如果我希望用户按Enter键结束程序,我必须写std::cin.ignore()两次才能获得所需的行为.例如:
#include <iostream>
int main(void)
{
int val = 0;
std::cout << "Enter an integer: ";
std::cin >> val;
std::cout << "Please press Enter to continue..." << std::endl;
std::cin.ignore();
std::cin.ignore(); // Why is this one needed?
}
Run Code Online (Sandbox Code Playgroud)
我也注意到,当我不是cin用于实际输入而是仅用于最后的ignore()呼叫时,我只需要一个.
我正在为学校写一个简单的tic tac toe游戏.作业是用C++编写的,但老师允许我使用C#和WPF作为挑战.我已经完成了所有游戏逻辑并且表单大部分都已完成,但我遇到了一堵墙.我目前正在使用a Label表示它是谁,我希望在玩家进行有效移动时更改它.根据Applications = Code + Markup,我应该能够使用该类的FindName方法Window.然而,它一直在回归null.这是代码:
public TicTacToeGame()
{
Title = "TicTacToe";
SizeToContent = SizeToContent.WidthAndHeight;
ResizeMode = ResizeMode.NoResize;
UniformGrid playingField = new UniformGrid();
playingField.Width = 300;
playingField.Height = 300;
playingField.Margin = new Thickness(20);
Label statusDisplay = new Label();
statusDisplay.Content = "X goes first";
statusDisplay.FontSize = 24;
statusDisplay.Name = "StatusDisplay"; // This is the name of the control
statusDisplay.HorizontalAlignment = HorizontalAlignment.Center;
statusDisplay.Margin = new Thickness(20);
StackPanel layout = new StackPanel(); …Run Code Online (Sandbox Code Playgroud)