C ++和C#之间的差异

时间:2014-07-27 07:05:06

标签: c# c++

我了解C ++,但我是C#编程的新手,我有一些问题:

  1. 我知道在C#中没有“const正确性”,那么如何替换呢?如果你调用方法f(Stack stk),你如何确保f()不会改变我的堆栈?

  2. 在c ++ operator=中,copy ctordtor会自动在每个班级中创建,C#也会自动创建吗?

  3. 我知道在C#中,如果我们有一个方法f(Stack stk),它就像c ++中的f(Stack& stk)一样, 那么如何按值发送对象参数?

  4. 在C#中,我们还创建了两个文件:.h用于声明,.c用于实现?

  5. (谢谢!)

1 个答案:

答案 0 :(得分:3)

  1. 根本没有任意类型的常量。只有单个字段可以是readonly,而不是任意变量或类型。 “常量”(const)需要是编译时常量,如pi。

  2. 不适用于class类型,因为它们无法直接分配。 class类型总是通过指针处理,而不是直接操纵对象。只有struct可以直接操作,并且它们总是通过内存副本分配,因此它们没有赋值运算符或析构函数。

  3. 包含类“object”类型的变量总是指针到对象,所以要复制类类型的对象,他们需要实现ICloneable,你就是应该在对象上调用.Clone()并传递它。要复制struct对象,您可以正常传递它们。

  4. 不,元数据存储在程序集本身中。