constructor相关内容

通用 C# 复制构造函数

为我的 c# 类编写通用复制构造函数的最佳方法是什么?它们都继承自抽象基类,因此我可以使用反射来映射属性,但我想知道是否有更好的方法? 解决方案 您可以通过预编译来有效地创建浅拷贝,例如使用 Expression.例如,像这样. 对于深拷贝,序列化是最可靠的方法. ..
发布时间:2022-01-20 18:37:54 C#/.NET

隐式复制构造函数/赋值运算符的行为

我有一个关于 C++ 标准的问题. 假设您有一个带有用户定义的复制构造函数和赋值运算符的基类.派生类使用编译器生成的隐式类. 派生类的拷贝/赋值是否调用用户定义的拷贝构造函数/赋值运算符?还是需要实现调用基类的用户定义版本? 感谢您的帮助. 解决方案 如果派生类没有声明复制构造函数,并且会声明隐式的(12.8/4《复制类对象》)——即使基类有一个用户定义和定义的复制构造函 ..
发布时间:2022-01-20 18:31:14 C/C++开发

复制构造函数是如何工作的?

复制构造函数在 C++ 中是如何工作的 错误 1 ​​错误 C2064:术语不计算为采用 1 个参数的函数 c:\users\thuan\dropbox\homework\css 342\lab2\lab2\lab2\lab2.cpp 26 #include "intset.h"int main() {IntSet 对象1;IntSet 对象2(9);对象1(对象2);//这里出错返回0; ..
发布时间:2022-01-20 18:26:46 C/C++开发

通过复制构造函数在 Java 中复制对象而不影响原始对象

我正在尝试复制一个对象,然后将对其进行修改,而不更改原始对象. 我找到了 这个解决方案,它似乎是最好的方法将是一个复制构造函数 - 据我了解,这会给我一个深层副本(与原始对象完全分开的对象). 所以我尝试了.但是,我注意到当下面的代码执行时,它会影响之前复制它的所有对象.当我调用 surveyCopy.take() 时,它会改变 Survey 内的值,它也会改变 selectedSur ..
发布时间:2022-01-20 18:18:21 Java开发

c++ 隐式复制构造函数是否复制数组成员变量?

可能重复: 复制控制函数中如何处理C数组成员? 如果成员变量被声明为指针,我猜想隐式复制构造函数(由编译器生成)会复制指针. 我不确定数组成员变量会发生什么. 隐式复制构造函数是否正确复制数组成员?赋值运算符呢? 例如: char mCharArray[100];int mIntArray[100]; mCharArray mIntArray 会被正确复制吗? ..
发布时间:2022-01-20 18:13:19 C/C++开发

我定义了一个非拷贝构造函数;复制构造函数是否仍会被隐式定义?

是否可以为已经用户定义的构造函数的类调用(隐式)默认 复制构造函数 但那不是复制构造函数? 如果可能的话,假设我们为类显式定义了复制构造函数,现在可以调用(隐式)默认构造函数吗? 解决方案 首先,让我们澄清一下我们的词汇.默认构造函数是可以不带任何参数调用的构造函数.复印件constructor 是一个可以用单个参数调用的构造函数同类型.鉴于此,“默认复制构造函数"将是带有类似签名的 ..
发布时间:2022-01-20 17:59:30 C/C++开发

为什么复制构造函数应该在 C++ 中通过引用来接受它的参数?

为什么复制构造函数的参数必须通过引用传递? 解决方案 因为如果不是按引用,就是按值.为此,您制作一个副本,并为此调用复制构造函数.但要做到这一点,我们需要创建一个新值,所以我们调用复制构造函数,等等...... (您将有无限递归,因为“要复制,您需要复制".) ..
发布时间:2022-01-20 17:34:23 C/C++开发

JS 构造函数中的返回语句

当 JavaScript 函数体中的 return 语句用作新对象的构造函数时(带有 'new' 关键字)有什么作用? 解决方案 通常return简单的退出构造函数.但是,如果返回的值是一个 Object,则它被用作 new 表达式的值. 考虑: 函数 f() {这个.x = 1;返回;}警报((新 f()).x); 显示 1,但是 函数 f() {这个.x = 1;返回 { ..
发布时间:2022-01-19 15:38:20 前端开发

C++ 构造函数没有返回类型.究竟是为什么?

我在 Google 上搜索过这个问题并阅读了很多帖子,但是有很多不同的答案,所有这些都合乎逻辑,我想知道该主题的专家是否可以揭开这个问题的神秘面纱. 有人说没有返回是因为没有办法返回——语法禁止它——是的,这是有道理的,但我相信所有函数都必须返回一些东西,不是吗?其他人说构造函数会返回新创建的对象本身,这似乎是有道理的,因为在构造函数上使用了赋值运算符.还有一些人有其他有趣的解释. 解 ..
发布时间:2022-01-19 15:12:47 C/C++开发

构造函数可以返回 NULL 值吗?

我知道构造函数不会“返回"任何东西,例如如果我调用 CMyClass *object = new CMyClass() 如果构造函数失败,有什么方法可以使 object 为 NULL?就我而言,我有一些必须加载的图像,如果文件读取失败,我希望它返回 null.有什么办法吗? 提前致谢. 解决方案 我同意其他人的观点,你应该使用异常,但如果你真的需要使用 NULL 出于某种原因,请将构造函 ..
发布时间:2022-01-19 15:00:42 C/C++开发

在Ruby中,'new'和'initialize'之间的关系是什么?初始化时如何返回零?

我想要的是: obj = Foo.new(0) # =>无或假 这不起作用: 类 Foo定义初始化(val)如果 val == 0 则返回 nil结尾结尾 我知道在 C/C++/Java/C# 中,我们不能在构造函数中返回值. 但我想知道在 Ruby 中是否有可能. 解决方案 在 Ruby 中,'new' 和 'initialize' 是什么关系? new 通常调用 ..
发布时间:2022-01-19 14:37:10 其他开发

为什么 Java 没有像 C++ 中那样的初始化列表?

在 C++ 中,您可以使用初始化列表在构造函数开始运行之前初始化类的字段.例如: Foo::Foo(string s, double d, int n) : name(s), weight(d), age(n) {//空的;已经处理了!} 我很好奇为什么 Java 没有类似的功能.根据Core Java:第 1 卷: C++ 使用这种特殊的语法来调用字段构造函数.在 Java 中,不需要 ..
发布时间:2022-01-19 00:10:28 Java开发

派生类的类变量的初始化/实例化顺序和基类构造函数的调用

我想弄清楚 1) 派生类变量的初始化/实例化 2) 在此代码段中调用基类构造函数的顺序 公共类库{整数 y = 1;公共基础(){y = 2;功能();}无效函数(){System.out.println("在基值 = " + String.valueOf(y));}公共静态类派生扩展基{整数 y = 3;公共派生(){功能();}无效函数(){System.out.println("在派生值 ..
发布时间:2022-01-19 00:07:04 Java开发

从 initializer_list 错误构造 std::map

我正在尝试创建一个类构造函数,它将采用一个初始化列表并使用它初始化一个映射,如下所示: 类测试{std::mapm_ints;上市:测试(std::initializer_list>init):m_ints(初始化){}}; 但这会导致很长的错误消息,坦率地说我不明白.我需要进行哪些更改才能完成这项工作? 解决方案 将 std::initializer_list 的模 ..
发布时间:2022-01-19 00:04:35 C/C++开发

变量多态的初始化

假设你有以下代码 A 类 {诠释 i = 4;一个() {打印();}无效打印(){System.out.println("A");}}B 类扩展 A {诠释 i = 2;//“这条线"公共静态无效主要(字符串[]参数){A a = 新 B();打印();}无效打印(){System.out.println(i);}} 这将打印 0 2 现在,如果您删除标有“此行​​"的行代码将打印 4 ..
发布时间:2022-01-19 00:03:33 Java开发